用c语言解决有50个学生,要求将他们之中成绩在80分(含)以上的学号和成绩输出
时间: 2024-10-16 08:06:56 浏览: 154
在C语言中,你可以使用数组或结构体来存储学生的数据,然后遍历这个数组,检查每个学生的分数是否大于等于80分。以下是一个简单的示例,假设我们用一个一维整数数组代表成绩,并用另一个整数数组或动态分配的内存来记录高分学生的学号:
```c
#include <stdio.h>
#define MAX_STUDENTS 50
int main() {
int scores[MAX_STUDENTS]; // 学生的成绩数组
int num_students; // 实际的学生人数
int high_scores[MAX_STUDENTS]; // 高分学生的学号列表
int i = 0, j = 0;
printf("请输入每个学生的成绩(输入负数结束):\n");
for (num_students = 0; scanf("%d", &scores[num_students]) >= 0 && num_students < MAX_STUDENTS; num_students++) { // 输入阶段
if (scores[num_students] >= 80) { // 如果达到80分及以上
high_scores[j++] = num_students; // 记录该学号
printf("学号 %d 的成绩: %d\n", num_students, scores[num_students]);
}
}
// 输出所有高于80分的学生及其成绩
if (j > 0) {
printf("\n高于80分的学生学号和成绩如下:\n");
for (; j > 0; j--) {
printf("学号:%d 分数:%d\n", high_scores[j - 1], scores[high_scores[j - 1]]);
}
} else {
printf("没有学生得分超过80分。\n");
}
return 0;
}
阅读全文