我如何创建一个函数来读取用户插入到 c 数组中的数字?

how can i create a function to read the numbers that the user inserts into an array in c?

我是编程新手。

我正在做一个练习 用户在数组中插入数字,程序打印这些数字的平均值。

但练习的一部分是使用函数生成用户插入的数字,而这正是我苦苦挣扎的地方。

我的代码:

#include <stdio.h>

 main() {

    int n = 10, i, array1[10];
    float sum = 0.0, average;

    printf("insert 10 numbers\n");

   for (i = 0; i < n; ++i) {
        printf("insert digit no%d: ", i + 1);
        scanf("%d", &array1[i]);
        sum += array1[i];
    }
  average = sum / n;
    printf("average = %.2f", average);
    return 0;
    }

非常感谢所有帮助:)

如果您想将用户输入和平均计算移动到单独的方法中。应该这样做。

#include <stdio.h>

/*
 * Takes an array and get input for N items specified 
 */ 
void getUserInputForArray(int array[], int N) {
    printf("insert %d numbers\n", N);

    for (int i = 0; i < N; ++i) {
        printf("insert digit no %d: ", i + 1);
        scanf("%d", &array[i]);
    }
}

/*
 * Calculate average for a given array of size N
 */ 
float getAverage(int array[], int N) {
    // Initialize sum to 0
    float sum = 0.0f;
    // Iterate through array adding values to sum
    for (int i = 0; i < N; i++)
        sum += array[i];

    // Calculate average 
    return sum / N;
}

int main() {
    int n = 10, array1[10];
    // Pass array to method, since arrays in C are passed by pointers.
    // So Even if you modify it in method it would get reflected in 
    // main's array1 too
    getUserInputForArray(array1, n);

    // Calculate Average by delegating average calculation to getAverage(...) method
    float average = getAverage(array1, n);

    printf("average = %.2f", average);
    return 0;
}

这是一个向您展示函数如何工作的小程序:

#include "stdio.h"

void foo(int array[], int size)
{
    for (int i = 0; i < size; i++)
        scanf("%d", &array[i]);
}

size_t bar(int array[], int size)
{
    int sum = 0;

    for (int i = 0; i < size; i++)
        sum += array[i];

    return (sum);
}

int main(void)
{
    int array[3] = {0};
    int sum;

    foo(array, 3);
    sum = bar(array, 3);

    printf("array sum = %d\n", sum);

    return (0);
}

foobar是两个函数,它们的左边都有一个return类型,一个名字(foo/bar),括号里有一些参数, 以及它们在大括号之间的主体声明。

当您从 main 调用函数时,您必须使用所需的参数来调用它。在我的示例中,两个函数都需要一个整数数组和一个整数值作为参数。这就是为什么我们从主要部分这样称呼它:foo(array, 3);bar(array, 3).

当我们调用一个函数时,给定的参数会被复制到内存中,这样您就可以像使用变量一样在函数体中使用这些参数。

某些函数的 return 类型不同于 void。这些函数能够(并且必须)return return 类型的值与 return 语句。这些值可以被使用、分配等,正如您在指令 sum = bar(array, 3);

中看到的那样

甚至 main 也是一个函数 !