C语言代码输入某班学生某门课的成绩(最多不超过40人),当输入为负值时,表示输入结束,用函数编程统计成绩高于平均分的学生人数。
时间: 2023-12-15 13:03:21 浏览: 60
可以,您可以使用以下代码实现:
```
#include <stdio.h>
void count_above_avg(int arr[], int size) {
int sum = 0, count = 0;
float avg;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
avg = (float) sum / size;
for (int i = 0; i < size; i++) {
if (arr[i] > avg) {
count++;
}
}
printf("成绩高于平均分的学生人数为: %d\n", count);
}
int main() {
int grade[40], i = 0;
printf("请输入学生成绩,以负数结束输入:\n");
while (1) {
scanf("%d", &grade[i]);
if (grade[i] < 0) {
break;
}
i++;
}
count_above_avg(grade, i);
return 0;
}
```
相关问题
c语言输入某班学生某门课的成绩(最多不超过40人), 当输入为负值时,表示输入结束, 用函数编程统计成绩不低于平均分的学生人数。
好的,我可以帮您解决这个问题。
以下是一个简单的 C 代码实现,用于输入学生的成绩并计算平均分和不低于平均分的学生人数:
```c
#include <stdio.h>
int main() {
int scores[40];
int sum = 0, count = 0;
float average;
int i = 0;
while (1) {
printf("请输入第 %d 个学生的成绩:", i+1);
scanf("%d", &scores[i]);
if (scores[i] < 0) {
break;
}
sum += scores[i];
i++;
}
if (i == 0) {
printf("没有输入成绩!\n");
return 0;
}
average = (float) sum / i;
for (int j = 0; j < i; j++) {
if (scores[j] >= average) {
count++;
}
}
printf("平均分为:%.2f\n", average);
printf("不低于平均分的学生人数为:%d\n", count);
return 0;
}
```
该代码使用了一个数组 `scores` 来存储输入的成绩,使用一个循环来读取成绩并累加到 `sum` 变量中,同时统计输入的成绩个数。在输入结束后,计算平均分并使用另一个循环来统计不低于平均分的学生人数。
注意,此代码没有对输入的成绩进行任何错误检测或处理,如有需要,请自行添加。
c语言从键盘输入某班学生某门课的成绩(每班人数最多不超过40人),当输入为负值时,表示输入结束,试编程将分数按从高到低顺序进行排序输出。
以下是一个示例代码:
```c
#include <stdio.h>
int main() {
int scores[40];
int num = 0;
// 从键盘读入分数,直到输入负值
while (1) {
printf("请输入第 %d 个学生的分数:", num + 1);
scanf("%d", &scores[num]);
if (scores[num] < 0) {
break;
}
num++;
}
// 冒泡排序,从高到低排序
for (int i = 0; i < num - 1; i++) {
for (int j = 0; j < num - i - 1; j++) {
if (scores[j] < scores[j+1]) {
int temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
// 输出排序后的分数
printf("排序后的分数为:");
for (int i = 0; i < num; i++) {
printf("%d ", scores[i]);
}
printf("\n");
return 0;
}
```
上面的代码使用了一个数组 `scores` 来存储输入的分数,使用变量 `num` 来记录输入了多少个分数。在读入分数的过程中,如果输入负值则退出循环。然后使用冒泡排序算法对分数进行排序,最后输出排序后的分数。