【发布时间】:2015-07-23 16:32:03
【问题描述】:
问题陈述
给你一个大小为 的整数数组。您需要打印数组元素的总和。
注意:带符号的 32 位整数值使用位表示数字的符号,其余 31 位表示幅度。 32 位整数的范围是 .当我们添加几个整数值时,结果总和可能会超出此范围。您可能需要在 C/C++ 中使用long long int 或在 Java 中使用 long 数据类型来存储这些总和。
输入格式
输入的第一行包含一个整数。接下来的几行包含用空格分隔的整数来描述数组。
约束
输出格式
输出一个等于数组元素总和的单个值。
示例输入
5
1000000001 1000000002 1000000003 1000000004 1000000005`
样本输出
5000000015
我的程序
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
int n,i;
scanf("%d",&n);
long int a[5],sum;
for(i=0;i<=n-1;i++){
scanf("%ld %ld %ld %ld %ld",&a[1],&a[2],&a[3],&a[4],&a[5]);
}
for(i=0;i<=n-1;i++){
sum = sum + a[i];
}
printf("%ld",sum);
return 0;
}
错误说明
输入(标准输入):
5
1000000001 1000000002 1000000003 1000000004 1000000005
您的输出(标准输出):
140692151765426
预期输出:
5000000015
编译器消息:
Wrong Answer
【问题讨论】:
-
你必须初始化 sum
-
如果
a只有 5 个元素,你就不能使用&a[5]。 -
数组索引为 0
-
无论
n的值如何,您的代码(一旦修复索引)只会读取5 个元素。 -
long int a[5],sum=0;for(i=0;i<=n-1;i++) scanf("%ld", &a[i]);
标签: c arrays int long-integer