用c语言输入三个学生的中文姓名和总分,根据总分由高到低排名次
时间: 2023-11-27 09:51:06 浏览: 50
以下是使用C语言实现输入三个学生的中文姓名和总分,并根据总分由高到低排名次的代码:
```c
#include <stdio.h>
#include <string.h>
struct student {
char name[20];
int score;
};
int main() {
struct student s[3]; // 定义存储学生信息的结构体数组
int i, j;
struct student temp; // 定义临时结构体变量,用于交换排序中的两个元素
// 输入学生信息
for (i = 0; i < 3; i++) {
printf("请输入第%d个学生的姓名和总分:", i + 1);
scanf("%s %d", s[i].name, &s[i].score);
}
// 冒泡排序,按照总分由高到低排序
for (i = 0; i < 2; i++) {
for (j = 0; j < 2 - i; j++) {
if (s[j].score < s[j + 1].score) {
temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
// 输出学生信息及排名次
printf("\n学生排名如下:\n");
for (i = 0; i < 3; i++) {
printf("第%d名:%s,总分:%d\n", i + 1, s[i].name, s[i].score);
}
return 0;
}
```
在这个程序中,我们定义了一个结构体`student`,存储每个学生的姓名和总分,然后定义一个结构体数组`s`,用于存储三个学生的信息。我们使用`scanf()`函数输入每个学生的姓名和总分,然后使用冒泡排序算法,将学生按照总分由高到低排序。最后,使用循环输出每个学生的排名次、姓名和总分。