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

标签 c arrays function user-input

我创建了一个程序来计算 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;
}

最佳答案

error: definition of the variable with array type needs an explicit size or an initializer int data[];

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

int data[];

需要类似的东西:

int data[SIZE];

关于c - 如何通过主函数通过用户输入来填充在函数中定义为参数的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48626277/

相关文章:

c - 如何用C语言在另一个文件中搜索一个文件的单词?

c - 漏洞利用代码中的指针说明

python - 为什么我的继承自 array.array 的类不起作用?

c - 共享内存和指针

python - 如何转换相同长度的数组列表

c - 定义元素较少的数组

javascript - 使用函数实现 Split 方法

javascript - 将 onClick 与 jQuery POST 结合使用不起作用

java - Observable 作为函数 - 观察者设计模式 java

c++ - 词频统计