关于C程序的一些问题
#include<stdio.h>
int main(void)
{
long num;
long sum = 0L;
int status;
printf("please enter an integer to be summed.");
printf("(q to quit):");
status = scanf("%ld",&num);
while(status == 1)
{
sum = sum + num;
printf("please enter next integer (q to quit):");
status= scanf("ld",&num);
}
printf("Those integer sum to %ld.\n",sum);
return 0;
}
这段程序的目的是实现输入几个数之后可以相加,但是为什么在输入一个数后,就会提示press anykey to continue的呢?请问各位知道吗? C printf
[解决办法]
scanf成功输入的返回值是1
[解决办法]
你输入一个数回车时,实际上时传入了两个数,还包含了回车符
如"15\n"
那么第二个scanf就会接受到\n就会返回0
应该在scanf前加一句while(getchar()!='\n');
或者..
[解决办法]
循环体中错误:
status= scanf("ld",&num);
//改为
status = scanf("%ld",&num)
#include <stdio.h>
int main(void)
{
long num;
long sum = 0L;
int status;
printf("please enter an integer to be summed.");
printf("(q to quit):");
status = scanf("%ld",&num);
while(status == 1)
{
sum = sum + num;
printf("please enter next integer (q to quit):");
status= scanf("%ld",&num);//这里少了个%..
}
printf("Those integer sum to %ld.\n",sum);
return 0;
}