为什么该代码总要多输入一个数
#include<stdio.h>int main()
{
int n,a,b,sum;
sum = 0;
for(n=0;n<=3;n++){
scanf("%d ",&a);
b = a/3;
sum += 50*b;
}
printf("%d",sum);
return 0;
} 问题出在 scanf("%d ",&a) 这一行代码上。在格式字符串"%d "中,空格字符表示在输入中跳过任意数量的空格、制表符和换行符。因此,如果你在输入一个数后紧接着输入了一个空格字符,scanf函数会继续寻找下一个非空格字符作为输入。这就导致了你需要多输入一个数。
要解决这个问题,你可以将格式字符串改为"%d",去掉空格字符。这样,scanf函数就只会读取一个整数作为输入,而不会再继续寻找下一个非空格字符。
修改后的代码如下:
#include<stdio.h>
int main()
{
int n, a, b, sum;
sum = 0;
for(n = 0; n <= 3; n++){
scanf("%d", &a);
b = a / 3;
sum += 50 * b;
}
printf("%d", sum);
return 0;
}
这样修改后,你只需要输入4个整数,而不需要输入多余的空格字符。 本帖最后由 歌者文明清理员 于 2023-11-9 20:47 编辑
#include<stdio.h>
int main()
{
int n,a,b,sum;
sum = 0;
for(n=0;n<3;n++){ # n<3,不是n<=3
scanf("%d ",&a);
b = a/3;
sum += 50*b;
}
printf("%d",sum);
return 0;
}
页:
[1]