c语言初学者
编写一个程序 将输入的数字加起来
例子:
`How many numbers: 3
-3
4
13
The sum is: 14
How many numbers: 5
-2
-1
0
1
2
The sum is: 0
这是我的代码:
不知道哪里有什么问题
#include<stdio.h>
#define m 100
int main() {
int i;
int num[m];
int a;
int sum=0;
printf("How many numbers: ");
scanf("%d", &a);
for(i=0;i < a;i++) {
scanf("%d", &num[i]);
i=0;
while(i<a) {
i++;
sum=sum+num[i];
printf("The sum is: %d\n", sum);
}
}
return 0;
}
怎么说呢,你这代码写的思路有点混乱,这种题目首先要想办法把输入的数字通过for循环装到数组里,之后再for循环遍历逐一相加。我修改了一下为
#include<stdio.h>
#define m 100
int main() {
int i;
int num[m];
int a;
int sum = 0;
printf("How many numbers: ");
scanf("%d", &a);
for (i = 0; i < a; i++) {
scanf("%d", &num[i]);
}
for (i = 0;i<a;i++) {
sum += num[i];
}
printf("The sum is: %d\n", sum);
return 0;
}
#include<stdio.h>
#define m 100
int main() {
int i;
int num[m];
int a;
int sum=0;
printf("How many numbers: ");
scanf("%d", &a);
for(i=0;i < a;i++)
{
scanf("%d", &num[i]);
sum=sum+num[i];
}
printf("The sum is: %d\n", sum);
return 0;
}
不如直接在输入的时候计算,上面一种算法while循环内部还没有输入完成具体的几个数字,就开始计算肯定会出错的
修改如下,供参考:
#include<stdio.h>
#define m 100
int main() {
int i;
int num[m] = {0}; //修改
int a;
int sum = 0;
printf("How many numbers: ");
scanf("%d", &a);
for (i = 0; i < a; i++) {
scanf("%d", &num[i]);
// i = 0;
// while (i < a) {
// i++;
sum = sum + num[i];
//}
}
printf("The sum is: %d\n", sum);
return 0;
}
1、先i++,就从num[1]开始了。少了第一个数。
2、printf sum 应放循环外
while(i<a) {
sum=sum+num[i];
i++;
}
printf("The sum is: %d\n", sum);
必须所有的数都输入完再求和。
这种是最简单的实现方法,每输入一个数据就把这个数据加起来,输入结束就同步得到结果了。
#include<stdio.h>
#define m 100
int main()
{
int i;
int num[m] = {0};
int a;
int sum = 0;
printf("How many numbers: ");
scanf("%d", &a);
for (i = 0; i < a; i++)
{
scanf("%d", &num[i]);
sum = sum + num[i];
}
printf("The sum is: %d\n", sum);
return 0;
}