杭电1092A+B投入产出的练习(IV) C语言

tech2024-12-08  6

杭电1092 A+B投入产出的练习(IV) C语言 问题描述 您的任务是计算一些整数的总和。

输入项 输入包含多个测试用例。每个测试用例包含一个整数N,然后在同一行中跟随N个整数。以0开头的测试用例将终止输入,并且该测试用例将不被处理。

输出量 对于每组输入整数,应在一行中输出其总和,并且在输入中每行输出一行。

样本输入 4 1 2 3 4 5 1 2 3 4 5 0

样本输出 10 15

代码:

#include <stdio.h> int main() { int n, i, s = 0; while ((scanf_s("%d", &n)) != EOF&&n) //!=EOF 未充分理解, 也不理解&&的作用 { s = 0; while (n--)//解题关键,样本输入第一个数就刚好表示后面有多少个数. { scanf_s("%d", &i); s += i; } printf("%d\n", s); } return 0; }

反思: 想了好多天没有想出来,尝试用过数组,看完答案后有了些思路,感觉能用数组,可以再试试用数组编写程序。

使用数组:

#include <stdio.h> int main() { int n = 0, i = 0, a[10]; while (scanf_s("%d", &n)) { int sum = 0; //不在一开始(第4行)定义sum=0的原因是因为在输入 //第二个例子时,必须使sum的初始值仍然为0,不然 //还会保留第一个例子的输入得到的结果加入到第二个例 //子的输入导致结果错误 if (n == 0) break; for (i = 0; i < n; i++) { scanf_s("%d", &a[i]); sum += a[i]; } printf("%d\n",sum); } return 0; }

有个毛病就是经常忘记在输入时忘记添加地址符 “ & ”.

最新回复(0)