如何通过主函数通过用户输入填充在函数中定义的数组?

时间:2018-02-05 15:46:24

标签: c arrays function user-input

我创建了一个程序来计算4个数组元素的总和。 是否可以在程序执行期间提示用户手动填充数组元素,然后显示总和?我可以在不使用该函数的情况下执行此操作,但在使用函数时我会卡住。是否仍然可以这样做?

如果我在main函数中插入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;
}

1 个答案:

答案 0 :(得分:0)

  

错误:数组类型变量的定义需要显式   大小或初始化程序       int data [];

编译器很清楚,你不能这样做:

int data[];

需要类似:

int data[SIZE];