题目:C语言编程题实现以下功能: 1) 从键盘输入10个学生的成绩,计算平均成绩ave 2) 统计及格人数pass,计算高于平均分的学生的人数better 3) 将10个学生成绩排名。 -------------------------------------------------------*/ #include "stdio.h" #define N 10 void main() { int i,j,a[N],ave,sum=0,pass=0,better=0,t; /**********Program**********/ /********** End **********/ printf("平均分:%d\n及格人数%d\n高于平均分人数%d\n",ave,pass,better); }
时间: 2023-07-18 10:40:32 浏览: 307
C语言程序设计-统计出若干个学生的平均成绩,最高分以及得最高分的人数;
5星 · 资源好评率100%
以下是程序实现:
```
#include <stdio.h>
#define N 10
int main() {
int i, j, a[N], ave, sum = 0, pass = 0, better = 0, t;
// 输入学生成绩
printf("请输入10个学生的成绩:\n");
for (i = 0; i < N; i++) {
scanf("%d", &a[i]);
sum += a[i]; // 计算总分
if (a[i] >= 60) {
pass++; // 统计及格人数
}
}
ave = sum / N; // 计算平均成绩
// 统计高于平均分的学生人数
for (i = 0; i < N; i++) {
if (a[i] > ave) {
better++;
}
}
// 冒泡排序
for (i = 0; i < N; i++) {
for (j = 0; j < N - i - 1; j++) {
if (a[j] < a[j + 1]) {
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
// 输出结果
printf("平均分:%d\n及格人数:%d\n高于平均分人数:%d\n", ave, pass, better);
printf("成绩排名:");
for (i = 0; i < N; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
程序的实现过程如下:
1. 定义数组 `a[N]` 存储学生成绩,变量 `ave` 记录平均成绩,变量 `sum` 记录总分,变量 `pass` 记录及格人数,变量 `better` 记录高于平均分的学生人数,变量 `t` 用于交换数组元素。
2. 循环输入 10 个学生的成绩,并计算总分和及格人数。
3. 计算平均成绩。
4. 统计高于平均分的学生人数。
5. 使用冒泡排序对学生成绩降序排列。
6. 输出平均分、及格人数、高于平均分的学生人数和成绩排名。
注意,程序中输入输出的格式和题目要求可能存在细微差别,需要根据实际情况进行调整。
阅读全文