【发布时间】:2018-07-15 12:40:21
【问题描述】:
我创建了一个程序来计算 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: %d\n", total);
return 0;
}
【问题讨论】:
-
“如果我在这里插入一个 for 循环,编译器会抱怨数据(存储用户输入的数组)未初始化。”这里是什么地方”?您介意向我们展示有问题的程序吗?
-
不显示有效的代码,显示无效的代码。不要描述你的代码,而是展示它。
-
有时间我会补充答案的。
-
@SudarshanKakoty.:首先检查我的这个答案....尝试运行此代码...它做任何你想做的事。该程序基本上要求输入数字,然后您逐渐输入,然后按“退出”或
q退出...stackoverflow.com/a/48528760/3796113... -
我有点忙和累 - 如果我明天回来看到这个没有答案,如果其他链接的答案没有帮助(这不太可能)我会编辑答案以满足您的需求要求。在那之前..一切顺利
标签: c arrays function user-input