先获取数组长度,然后用for循环,从数组中获取值进行累加求和。
#include
#include
int main()
{
int n
int val
int * a
int sun = 0, i
printf("请输入数组的长度:")
scanf("%d", &n)
printf("\n")
a = (int *)malloc(n * sizeof(int))//为数组a动态分配内存
for(i = 0i <ni++)
{
printf("请输入数组的第%d个元素的值:", i+1)
scanf("%d", &val)
printf("\n")
a[i] = val
}
for (i = 0i <ni++)
{
sun+=a[i]//sun+=a[i]相当于sun=sun+a[i]
}
printf("sun = %d\n",sun)
free(a)//释放a动态分配的内存
return 0
}
扩展资料:
一个数组中的所有元素具有相同的数据类型(在C、C++、Java、pascal中都这样。但也并非所有涉及数组的地方都这样,比如在Visual Foxpro中的数组就并没这样的要求)。当然,当数据类型为 Variant 时,各个元素能够包含不同种类的数据(对象、字符串、数值等等)。可以声明任何基本数据类型的数组,包括用户自定义类型和对象变量。
如果要用户输入的是一个数组,一般是用一个循环,但是在输入前也需要固定数组的大小。
compact跟变长数组没有太大的关系,也应该用不到变长数组。因为一般的传数组到函数中就是传数组的地址和元素的个数的,那只是一个提示,不是要求。
参考资料来源:百度百科-数组
// 数组求和的方法let arr = [1,2,3,4,5]
// 方法一:递归
// 方法二:循环
// 方法三:map-reduce
// 方法四:forEach
// 方法五:eval
console.log(sum(arr))