//从键盘上输入一些整数,求所有正数之和
//当输入0或负数时,程序结束
#include
int main(){
printf("请输入:");
int sum = 0;
int a;
scanf("%d", &a);//输入第一个数
getchar();
if(a<=0)exit(1);
while (a>0) {
sum = sum + a;
scanf("%d", &a);
getchar();
}
printf("sum = %d\n", sum);
return 0;
}
/*
我开始是这么想的:
scanf是从缓冲区中取值的,
而缓冲区中有两个字符,
一个是从键盘输入的a,
一个是输完a之后按下的回车。
我在每个scanf后面紧接着加getchar是要把回车取出来,好让后面的scanf能够正常工作。
若没有getchar的话,后面的scanf将会直接从缓冲区中读取,这时读取出来的将会是回车。
/
/
但是!!!
我后来尝试把getchar注释掉,这时候程序也能正常运行!!!而且结果也正确!!!
为什么啊???
*/
C语言。从键盘上输入一些整数,求所有正数之和,当输入0或负数时,程序结束。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
悬赏问题
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题