复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71# define _CRT_SECURE_NO_WARNINGS //用 scanf_s 会出错 # include <stdio.h> # include <malloc.h> struct Student { int age; float score; char name[100]; }; int main(void) { int len; struct Student* pArr; int i; int j; struct Student t; printf("请输入学生的个数:n"); printf("len = "); scanf("%d", &len); pArr = (struct Student*)malloc(len * sizeof(struct Student)); for (i = 0; i < len; ++i) { printf("请输入第%d个学生的信息:", i + 1); printf("age = "); scanf("%d", &pArr[i].age); printf("name = "); scanf("%s", pArr[i].name); //name是数组名,本身就是数组首元素的地址,所以不需要&取地址符 printf("score = "); scanf("%f", &pArr[i].score); } //按学生成绩降序排序排序,冒泡算法 for (i = 0; i < len - 1; ++i) { for (j = 0; j < len - 1 - i; ++j) { if (pArr[j].score < pArr[j + 1].score) { t = pArr[j]; pArr[j] = pArr[j + 1]; pArr[j + 1] = t; } } } printf("nn学生成绩由高到低排序是:n"); //输出 for (i = 0; i < len; ++i) { printf("排名第%d个学生的信息:n", i + 1); printf("age = %dn", pArr[i].age); printf("name = %sn", pArr[i].name); printf("score = %fn", pArr[i].score); printf("n"); } return 0; }
运行结果:
请输入学生的个数:
len = 3
请输入第1个学生的信息:age = 21
name = 张三
score = 75
请输入第2个学生的信息:age = 22
name = 李四
score = 65
请输入第3个学生的信息:age = 23
name = 王五
score = 98
学生成绩由高到低排序是:
排名第1个学生的信息:
age = 23
name = 王五
score = 98.000000
排名第2个学生的信息:
age = 21
name = 张三
score = 75.000000
排名第3个学生的信息:
age = 22
name = 李四
score = 65.000000
最后
以上就是开放招牌最近收集整理的关于C语言_郝斌课程_学生管理系统的全部内容,更多相关C语言_郝斌课程_学生管理系统内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复