根据用户输入的整数求和。
程序分析:
while (number == 1)
==运算符是C的相等运算符,该表达式判断number是否等于1。
注意:不要把number==1与number=1混淆,后者是把1赋给status。
根据测试条件number==1,只要number等于1,循环就会重复。每次循环,num的当前值都被加到sum上,这样sum的值始终是当前整数之和。当number的值不为1时,循环结束。然后程序打印sum的最终值。
要让程序正常运行,每次循环都要获取num的一个新值,首先,使用scanf()读取num的一个新值:然后,检查scanf()的返回值判断是否成功获取值。
注意:如果用户输入的不是数字,scanf()会读取失败并返回0。此时,number的值就是0,循环结束。
q to quit
因为输入的字符q不是数字,所它会被放回输入队列中(实际上,不仅仅是q,任何非数值的数据都会导致循环终止,但是提示用户输入q退出程序比提示用户输入一个非数字字符要简单)。
总结:
1、把sum初始化为0;
2、提示用户输入数据;
3、读取用户输入的数据;
4、当输入的数据为整数时,输入加给sum;
5、提示用户再次进行输入
6、再次读取用户输入数据;
7、打印sum的值;
注意:while循环是一个入口条件循环,程序在进入循环体之前必须获取输入的数据并检测其是否为真。所以在while前面要有一个scanf()函数,要让循环继续执行,在循环内需要一个读取数据的语句,所以在while循环最后还要有一个scanf()函数。
方法一:程序如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{int num ,number;int sum = 0;printf("请输入求和的一个数:\n");number=scanf("%d", &num);while (number == 1)//while循环,判断number是否为真{sum = num + sum;printf("请输入下一个数:(q to quit)\n");number=scanf("%d", &num);}printf("这些数的和为%d\n", sum);*/return 0;
}
输出结果如下:

方法二:程序如下(其实就是简化了代码)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{int num;int sum = 0;printf("请输入求和的一个数:\n");while (scanf("%d", &num) == 1){sum = num + sum;printf("请输入下一个数:(q to quit)\n");}printf("这些数的和为%d\n", sum);return 0;
}


















