定义学生结构体,初始化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" 【输入形式】 n 【输出形式】 升序或降序排列的学生信息 【样例输入】 1 【样例输出】 202 Li 85 205 Xue 80 201 Zhang 78 204 Wang 75 203 Wang 60
时间: 2024-03-13 09:43:10 浏览: 91
浅析C++中结构体的定义、初始化和引用
以下是C语言的实现代码:
```c
#include <stdio.h>
#include <string.h>
struct stu {
int num;
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;
scanf("%d", &n);
if (n == 1) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5 - i - 1; j++) {
if (s[j].score < s[j + 1].score) {
struct stu temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
} else if (n == 2) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5 - i - 1; j++) {
if (s[j].score > s[j + 1].score) {
struct stu temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
}
for (int i = 0; i < 5; i++) {
printf("%-8d%-8s%d\n", s[i].num, s[i].name, s[i].score);
}
return 0;
}
```
输入样例:
```
1
```
输出样例:
```
202 Li 85
205 Xue 80
201 Zhang 78
204 Wang 75
203 Wang 60
```
输入样例:
```
2
```
输出样例:
```
203 Wang 60
204 Wang 75
201 Zhang 78
205 Xue 80
202 Li 85
```
阅读全文