c语言为什么往scanf里输入值最终得到的值为1?
#include <stdio.h>
int main()
{
int a, b, c;
a = scanf("%d", &a);
b = scanf("%d", &b);
c = scanf("%d", &c);
printf("a:%d\t b:%d\t c:%d\t \n", a, b, c);
if (a > b) {
if (a > c) {
printf("a小猪体重最重");
}
else {
printf("c小猪体重最重");
}
}
else {
if (b > c) {
printf("b小猪体重最重");
}
else {
printf("c小猪体重最重");
}
}
}
scanf() 函数的返回值,就是它读入成功参数的个数。 scanf("%d", &a); 如果读入成功,它返回1 , scanf("%d%d", &a,&b); 这句读入成功它返回 2.
所以代码里:
a = scanf("%d", &a);
b = scanf("%d", &b);
c = scanf("%d", &c);
这三句修改为:scanf("%d%d%d",&a,&b,&c); 即可。
如果想加入读入是否成功的判断,这么写:
if(scanf("%d%d%d",&a,&b,&c) == 3)
{
}
else
{
}
scanf的返回值指的是成功读取赋值的数量