如何解c语言程序问题

在主函数中输入10个学生的成绩,如何编写被调函数求平均分和平均分以上的学生人数?

代码如下:

int main() {
    int values[] = { 1, 2, 3, 4, 56, 7, 8 ,9, 10 };
    int length = 10;
    int count=0;//人数
    double average =ReturnAverage(values);
    std::cout << "平均值是: " << average << std::endl;
    count=ReturnCount(values);
   std::cout << "平均分以上的学生人数是: " << count<< std::endl;
    return 0;
}

double ReturnAverage(int data[]){
    int sum = 0;//总数
    for (int i = 0; i < length; i++) {
        sum += data[i];
    }
    //平均值
    double a = sum / length;
    return a;
}

int ReturnCount(int data[]){
    int c
    for (int i = 0; i < length; i++) {
        if(data[i]>=average ){
            c++;
         }
    }
return c;
}

以下是一个示例代码,其中calculate函数用于计算平均分和平均分以上的学生人数。

#include <stdio.h>

#define MAX_STUDENTS 10

void calculate(int *scores, int size, float *average, int *above_average) {
    int sum = 0;
    *above_average = 0;
    for (int i = 0; i < size; i++) {
        sum += scores[i];
    }
    *average = (float) sum / size;
    for (int i = 0; i < size; i++) {
        if (scores[i] >= *average) {
            (*above_average)++;
        }
    }
}

int main() {
    int scores[MAX_STUDENTS];
    float average;
    int above_average;

    // 输入10个学生的成绩
    printf("请输入10个学生的成绩:\n");
    for (int i = 0; i < MAX_STUDENTS; i++) {
        scanf("%d", &scores[i]);
    }

    // 计算平均分和平均分以上的学生人数
    calculate(scores, MAX_STUDENTS, &average, &above_average);

    // 输出结果
    printf("平均分为%.2f,平均分以上的学生人数为%d。\n", average, above_average);

    return 0;
}


其中calculate函数接受三个参数,分别是指向成绩数组、成绩数组大小、平均分和平均分以上的学生人数的指针。函数内部使用一个循环计算总分,并通过传入的指针计算平均分。接着再使用一个循环统计平均分以上的学生人数。在主函数中,先输入学生成绩,再调用calculate函数计算平均分和平均分以上的学生人数,最后输出结果。

  • 这篇博客: C语言入门程序【1】中的 10.输入十个同学成绩,输出低于平均分的人数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include <stdio.h>
    main() {
    	int i, cnt = 0;
    	float a[10], avg = 0;
    	printf("请输入十个同学成绩:");
    	for (i = 0; i < 10; i++) {
    		scanf("%f", &a[i]);
    		avg += a[i];
    	}
    	avg = avg / 10;
    	for (i = 0; i < 10; i++) {
    		if (a[i] < avg)
    			cnt++;
    	}
    	printf("低于平均分人数为:%d", cnt);
    }