编写程序,将输入的20名学生的成绩保存在数组中,编写函数max(),min(),ave()分别计算其最高分、最低分和平均分。

怎么调用编写程序,将输入的20名学生的成绩保存在数组中,编写函数max(),min(),ave()分别计算其最高分、最低分和平均分。

#include <stdio.h>

#define NUM_STUDENTS 20

int max(int arr[], int size) {
    int i, max = arr[0];
    for (i = 1; i < size; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
    }
    return max;
}

int min(int arr[], int size) {
    int i, min = arr[0];
    for (i = 1; i < size; i++) {
        if (arr[i] < min) {
            min = arr[i];
        }
    }
    return min;
}

double ave(int arr[], int size) {
    int i, sum = 0;
    double average;
    for (i = 0; i < size; i++) {
        sum += arr[i];
    }
    average = (double) sum / size;
    return average;
}

int main() {
    int scores[NUM_STUDENTS];
    int i;
    printf("请输入20名学生的成绩:\n");
    for (i = 0; i < NUM_STUDENTS; i++) {
        scanf("%d", &scores[i]);
    }
    int max_score = max(scores, NUM_STUDENTS);
    int min_score = min(scores, NUM_STUDENTS);
    double ave_score = ave(scores, NUM_STUDENTS);
    printf("最高分: %d\n", max_score);
    printf("最低分: %d\n", min_score);
    printf("平均分: %.2f\n", ave_score);
    return 0;
}

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
下面是用 C 语言编写的程序,实现将输入的20名学生的成绩保存在数组中,以及对其进行最高分、最低分和平均分的计算:

#include <stdio.h>

// 定义常量
#define N 20

// 函数声明
int max(int arr[], int n);
int min(int arr[], int n);
double ave(int arr[], int n);

int main() {
    int scores[N];
    int i;

    // 输入学生成绩并存入数组
    printf("请输入%d名学生的成绩:\n", N);
    for (i = 0; i < N; i++) {
        printf("请输入第%d名学生的成绩:", i + 1);
        scanf("%d", &scores[i]);
    }

    // 计算最高分、最低分和平均分
    int max_score = max(scores, N);
    int min_score = min(scores, N);
    double ave_score = ave(scores, N);

    // 输出结果
    printf("最高分:%d\n", max_score);
    printf("最低分:%d\n", min_score);
    printf("平均分:%.2f\n", ave_score);

    return 0;
}

// 计算数组中的最高分
int max(int arr[], int n) {
    int i;
    int max = arr[0];
    for (i = 1; i < n; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
    }
    return max;
}

// 计算数组中的最低分
int min(int arr[], int n) {
    int i;
    int min = arr[0];
    for (i = 1; i < n; i++) {
        if (arr[i] < min) {
            min = arr[i];
        }
    }
    return min;
}

// 计算数组中的平均分
double ave(int arr[], int n) {
    int i;
    int sum = 0;
    for (i = 0; i < n; i++) {
        sum += arr[i];
    }
    return (double) sum / n;
}

在上述程序中,我们首先定义了一个名为 N 的常量,用于表示学生人数。然后,我们定义了一个数组 scores,用于存储学生成绩。接着,我们使用 for 循环结构,通过 scanf 函数从键盘输入学生成绩,并将其存入数组中。

接下来,我们定义了三个函数 maxminave,用于计算数组中的最高分、最低分和平均分。这三个函数都接受两个参数:一个数组和该数组的长度。在函数中,我们使用 for 循环结构遍历数组,并使用相应的算法计算最高分、最低分和平均分,并将其作为函数的返回值。

最后,我们在 main 函数中,调用这三个函数,分别计算最高分、最低分和平均分,并使用 printf 输出结果。注意,在输出平均分时,我们使用了 %.2f 的格式字符串,以保留小数点后两位。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    思路:

    1. 声明一个包含20个元素的数组,用于保存学生的成绩。
    2. 编写一个函数来计算数组中的最大值,命名为max()。可以借鉴参考资料中给出的代码,读取数组中的每个元素,与max变量比较,更新max的值,最终返回max。
    3. 编写一个函数来计算数组中的最小值,命名为min()。与max()函数类似,可以在读取数组中的每个元素时,与min变量比较,更新min的值,最终返回min。
    4. 编写一个函数来计算数组中所有元素的平均值,命名为ave()。可以使用一个循环来遍历数组,求得数组中所有元素的和sum,然后用sum除以数组长度可以得到平均值,最终返回平均值。

    代码实现:

    #include <stdio.h>
    
    int max(int arr[], int size) {
        int max = arr[0];
        for (int i = 1; i < size; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        return max;
    }
    
    int min(int arr[], int size) {
        int min = arr[0];
        for (int i = 1; i < size; i++) {
            if (arr[i] < min) {
                min = arr[i];
            }
        }
        return min;
    }
    
    double ave(int arr[], int size) {
        double sum = 0;
        for (int i = 0; i < size; i++) {
            sum += arr[i];
        }
        return sum / size;
    }
    
    int main() {
        int scores[20];
        printf("请输入20名学生的成绩:\n");
        for (int i = 0; i < 20; i++) {
            scanf("%d", &scores[i]);
        }
        int max_score = max(scores, 20);
        int min_score = min(scores, 20);
        double ave_score = ave(scores, 20);
        printf("最高分:%d\n最低分:%d\n平均分:%.2f\n", max_score, min_score, ave_score);
        return 0;
    }
    

    代码说明:

    1. 声明一个名为scores的数组,包含20个元素,用于保存学生的成绩。
    2. 通过循环,从标准输入流读取20个整数,分别存储在数组的不同位置。
    3. 调用max()函数,min()函数和ave()函数,分别计算数组中的最大值、最小值和平均值。注意函数参数中,第一个参数是数组的名称(即数组的首地址),第二个参数是数组的长度(即数组的元素个数)。
    4. 在主函数中,通过调用printf()函数将计算结果输出到控制台。其中的%.2f表示输出一个小数,并保留两位小数。

    运行结果:

    请输入20名学生的成绩:
    80 55 90 99 76 85 46 62 71 88 79 93 81 73 59 64 77 87 70 82
    最高分:99
    最低分:46
    平均分:76.00
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^