>我创建了一个程序来计算 4 个数组元素的总和。是否可以提示用户在程序执行期间手动填充数组元素,然后显示总和?我可以在不使用该功能的情况下执行此操作,但是当我使用功能时我卡住了。还有可能吗?
如果我在主函数中插入一个 for 循环,就在变量初始化之后,
int data[];
int total;
int size = sizeof(data) / sizeof(data[0]);
printf("Enter array elements: ");
for(int i=0; i<size; i++) {
scanf("%d", &data[i]);
}
编译器抱怨:
error: definition of the variable with array type needs an explicit size or an initializer
int data[];
^
1 error generated.
我的程序如下所示:
#include <stdio.h>
int sum(int data[], int size)
{
int sum = 0;
int i;
for (i = 0; i < size; i++)
sum += data[i];
return sum;
}
int main()
{
int data[] = { 1, 2, 3, 4 }; // I want user input here
int total;
int size = sizeof(data) / sizeof(data[0]);
total = sum(data, size);
printf("Sum is: %dn", total);
return 0;
}
错误:数组类型的变量定义需要显式 大小或初始值设定项 int data[];
编译器很清楚,你不能这样做:
int data[];
需要类似的东西:
int data[SIZE];