根据用户输入的整数求和。
程序分析:
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;
- }
-