c语言代码 定义学生结构体,初始化5名学生的学号、姓名及成绩。struct stu s[5]={{201,"Zhang",78},{202,"Li",85},{203,"Wang",60},{204,"Wang",75},{205,"Xue",80}}; 编写程序根据用户输入的n值,输出升序或降序排列的学生信息。输入1,输出降序排列的学生信息;输入2,输出升序排列的学生信息。输出格式:"%-8d%-8s%d\n"
时间: 2023-07-19 22:33:27 浏览: 157
c++定义一个学生类(属性有学号,姓名,成绩),要求输入学生的学号,姓名及三科的成绩,以输入内容来设置学生对象的属性。最后输出学生的学号,姓名及三科的平均成绩。
好的,以下是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
struct stu {
int id;
char name[20];
int score;
};
int main() {
struct stu s[5] = {
{201, "Zhang", 78},
{202, "Li", 85},
{203, "Wang", 60},
{204, "Wang", 75},
{205, "Xue", 80}
};
int n;
printf("请输入1或2,1表示降序排列,2表示升序排列:");
scanf("%d", &n);
if (n == 1) { // 降序排列
for (int i = 0; i < 4; i++) {
for (int j = i + 1; j < 5; j++) {
if (s[i].score < s[j].score) {
struct stu temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
} else if (n == 2) { // 升序排列
for (int i = 0; i < 4; i++) {
for (int j = i + 1; j < 5; j++) {
if (s[i].score > s[j].score) {
struct stu temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
}
} else {
printf("输入有误!\n");
return 0;
}
printf("%-8s%-8s%s\n", "学号", "姓名", "成绩");
for (int i = 0; i < 5; i++) {
printf("%-8d%-8s%d\n", s[i].id, s[i].name, s[i].score);
}
return 0;
}
```
输入示例1(降序排列):
```
请输入1或2,1表示降序排列,2表示升序排列:1
```
输出示例1:
```
学号 姓名 成绩
202 Li 85
205 Xue 80
204 Wang 75
201 Zhang 78
203 Wang 60
```
输入示例2(升序排列):
```
请输入1或2,1表示降序排列,2表示升序排列:2
```
输出示例2:
```
学号 姓名 成绩
203 Wang 60
201 Zhang 78
204 Wang 75
205 Xue 80
202 Li 85
```
阅读全文