关于#函数返回#的问题,如何解决?

定义一个函数,功能是计算n个学生的成绩中,高于平均成绩的人数,并作为函数返回值返回给主调函数。n个学生的成绩可在主调函数中输入。


#include <stdio.h>
int count_above_average(int n, int grades[]) {
    int sum = 0;
    double average;
    int count = 0;
    for (int i = 0;
    i < n;
    i++) {
        sum += grades[i];
    }
    average = (double) sum / n;
    for (int i = 0;
    i < n;
    i++) {
        if (grades[i] > average) {
            count++;
        }
    }
    return count;
}
int main() {
    int n;
    int grades[100];
    printf("请输入学生人数:");
    scanf("%d", &n);
    printf("请输入%d个学生的成绩:\n", n);
    for (int i = 0;i < n;i++) {
        scanf("%d", &grades[i]);
    }
    int count = count_above_average(n, grades);
    printf("高于平均成绩的人数为:%d\n", count);
    return 0;
}

上面的代码用C语言无法运行,请用C语言编译正确的代码。

编译器不支持 for (int i = 0; i < n; i++) 定义循环自变量 i , 代码修改如下,改动处见注释,供参考:

#include <stdio.h>
int count_above_average(int n, int grades[]) {
    int sum = 0, i;           //  修改
    double average;
    int count = 0;
    for (i = 0; i < n; i++) { //for (int i = 0; i < n; i++) 修改
        sum += grades[i];
    }
    average = (double)sum / n;
    for (i = 0; i < n; i++) { //for (int i = 0; i < n; i++) 修改
        if (grades[i] > average) {
            count++;
        }
    }
    return count;
}
int main() {
    int n, i, count;     //  修改 
    int grades[100];
    printf("请输入学生人数:");
    scanf("%d", &n);
    printf("请输入%d个学生的成绩:\n", n);
    for (i = 0; i < n; i++) {   //for (int i = 0; i < n; i++)   修改 
        scanf("%d", &grades[i]);
    }
    count = count_above_average(n, grades); //int count = count_above_average(n, grades); 修改 
    printf("高于平均成绩的人数为:%d\n", count);
    return 0;
}

无法运行是啥现象啊,你倒是多说一点啊

运行程序后,输入学生的个数,以及对应学生个数的成绩,然后程序就会输出高于平均分的人数。

测试如下:


 
#include <stdio.h>
int count_above_average(int n, int grades[]) {
    int sum = 0;
    double average;
    int count = 0;
    for (int i = 0;
    i < n;
    i++) {
        sum += grades[i];
    }
    average = (double) sum / n;
    for (int i = 0;
    i < n;
    i++) {
        if (grades[i] > average) {
            count++;
        }
    }
    return count;
}
int main() {
    int n;
    int grades[100];
    printf("请输入学生人数:");
    scanf("%d", &n);
    printf("请输入%d个学生的成绩:\n", n);
    for (int i = 0;i < n;i++) {
        scanf("%d", &grades[i]);
    }
    int count = count_above_average(n, grades);
    printf("高于平均成绩的人数为:%d\n", count);
    return 0;
}

img