
起步向前走为您分享以下优质知识
在C语言中输出多个学生成绩,可以通过多种方式实现,具体取决于需求(如顺序输出、排序后输出等)。以下是几种常见的方法及示例代码:
一、顺序输出学生成绩
基本输入输出结构
使用`scanf`读取学生成绩,使用`printf`格式化输出。例如输入5个学生成绩并输出:
```c
include
int main() {
int scores;
printf("输入5个学生成绩:n");
for (int i = 0; i < 5; i++) {
scanf("%d", &scores[i]);
}
printf("学生成绩列表:n");
for (int i = 0; i < 5; i++) {
printf("学号:%d,成绩:%dn", i+1, scores[i]);
}
return 0;
}
```
结构体存储与输出
使用结构体存储学生信息(如姓名、学号、成绩),通过循环输出结构体数组:
```c
include
define STUDENT_COUNT 5
struct Student {
int id;
char name;
float score;
};
int main() {
struct Student students[STUDENT_COUNT];
printf("输入学生信息(学号 姓名 成绩):n");
for (int i = 0; i < STUDENT_COUNT; i++) {
scanf("%d %s %f", &students[i].id, students[i].name, &students[i].score);
}
printf("n学生成绩列表:n");
for (int i = 0; i < STUDENT_COUNT; i++) {
printf("学号:%d,姓名:%s,成绩:%.2fn", students[i].id, students[i].name, students[i].score);
}
return 0;
}
```
二、排序后输出学生成绩
冒泡排序实现
使用冒泡排序算法对学生成绩进行降序排序,再输出:
```c
include
void bubbleSort(float scores[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (scores[j] < scores[j+1]) {
float temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
}
int main() {
float scores;
printf("输入5个学生成绩:n");
for (int i = 0; i < 5; i++) {
scanf("%f", &scores[i]);
}
bubbleSort(scores, 5);
printf("n按成绩降序排序后的成绩:n");
for (int i = 0; i < 5; i++) {
printf("学号:%d,成绩:%.2fn", i+1, scores[i]);
}
return 0;
}
```
折半查找辅助输出
排序后使用折半查找法查找特定成绩(如90),并输出对应排名:
```c
include
int binarySearch(float scores[], int n, float target) {
int left = 0, right = n-1;
while (left