2、求到语文成绩的排名表,最后以列表形式输出名次表。 (初始化 STU stu3]="js01"."abc", 80, 8, 803("js03". ahh",88, 88, 883,.""js04", "aaa", 90, 90, 70;)1 名次 姓名 语文成绩
时间: 2024-06-02 14:04:58 浏览: 111
根据您提供的信息,我可以为您介绍一下如何求到语文成绩的排名表,并以列表形式输出名次表。
首先,我们需要对给定的学生信息进行排序,以便计算出每个学生的排名。假设给定的学生信息已经存储在一个结构体数组 stu 中,每个学生的信息包括姓名、语文成绩等。我们可以使用冒泡排序或快速排序等算法对学生信息进行排序,从高到低排列。
接下来,我们可以遍历排序后的学生信息数组 stu,对于每个学生,统计出在他之前有多少名同学比他成绩高,即可计算出该学生的排名。同时,我们可以将每个学生的姓名和语文成绩以列表形式输出,包括名次、姓名和语文成绩三个字段。
下面是具体实现的示例代码:
```
#include <stdio.h>
#include <string.h>
typedef struct {
char name[20]; // 姓名
int score; // 语文成绩
} STU;
int main() {
STU stu[] = {
{"js01", 80},
{"js03", 88},
{"js04", 90},
{"js02", 70}
};
int n = sizeof(stu) / sizeof(STU);
// 冒泡排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (stu[j].score < stu[j + 1].score) {
STU temp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = temp;
}
}
}
// 输出名次表
printf("名次\t姓名\t语文成绩\n");
for (int i = 0; i < n; i++) {
printf("%d\t%s\t%d\n", i + 1, stu[i].name, stu[i].score);
}
return 0;
}
```
输出结果如下:
```
名次 姓名 语文成绩
1 js04 90
2 js03 88
3 js01 80
4 js02 70
```
阅读全文