读书人

关于C程序的一些有关问题

发布时间: 2013-06-26 14:29:32 作者: rapoo

关于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)

[解决办法]
printf("(q to quit):");
status = scanf("%ld",&num);
while(status == 1) //status 不等于 1就退出循环了
sum = sum + num;
...
[解决办法]
就没有循环啊,除非你每次都输入1
[解决办法]
引用:
循环体中错误:
status= scanf("ld",&num);
//改为
status = scanf("%ld",&num)


++
[解决办法]
引用:
你输入一个数回车时,实际上时传入了两个数,还包含了回车符
如"15\n"
那么第二个scanf就会接受到\n就会返回0
应该在scanf前加一句while(getchar()!='\n');
或者..


乱说
[解决办法]

#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;
}

读书人网 >C语言

热点推荐