首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-06-26 
关于C程序的一些问题#includestdio.hint main(void){long numlong sum 0Lintstatusprintf(please

关于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;
 }

热点排行
Bad Request.