例 9.4 有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的信息。
输出 信息 顺序 要求 包括 学生 按照 成绩
2023-09-14 09:06:59 时间
C程序设计(第四版) 谭浩强 例9.4 个人设计
例 9.4 有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的信息。
代码块:
#include <stdio.h>
#include <stdlib.h>
struct Student{ //定义结构体类型Student
int num;
char name[20];
float score;
};
void input(Student *st, int n); //定义输入函数
void print(Student *st, int n); //定义输出函数
void sort(Student *st, int n); //定义排序函数
int main()
{
Student *stu; //定义结构体指针stu
int n;
printf("Please enter Student number: "); //输入学生个数
scanf("%d", &n);
stu=(Student*)malloc(n*sizeof(Student)); //为stu分配内存空间
input(stu, n); //调用输入函数
sort(stu, n); //调用排序函数
print(stu, n); //调用输出函数
system("pause");
return 0;
}
//输入函数
void input(Student *st, int n)
{
int i;
for (i=0; i<n; i++){
printf("Please enter No.%d student info: ", i+1);
scanf("%d %s %f", &st[i].num, st[i].name, &st[i].score);
}
}
//输出函数
void print(Student *st, int n)
{
Student *p;
for (p=st, printf("Sort by:\n"); p<st+n; printf("%d %-7s %.2f\n", p->num, p->name, p->score), p++);
}
//排序函数
void sort(Student *st, int n)
{
int i, j;
Student temp;
for (i=0; i<n; i++)
for (j=i+1; j<n; j++)
if (st[i].score>st[j].score){
temp=st[i], st[i]=st[j], st[j]=temp;
}
}
相关文章
- Tomcat日志输出乱码的解决方式
- shell脚本--输入与输出
- nohup 输出重定向
- QT-在Qt Widgets Application中怎么显示printf的输出内容?
- 【Itext】解决Itext5大并发大数据量下输出PDF发生内存溢出outofmemery异常
- Atitt php script lan debug bp 最佳实践调试php目录1.1. Error_log 11.2. Echo vs log法 11.3. 输出与debug信息昏药问题
- ZZNUOJ_C语言1060:逆序输出各位数字(完整代码)
- 输出美观的文本化表格,这个 Python 库是专业的
- 习题 14.1 求一元二次方程式ax^2+bx+c=0的实根,如果方程没有实根,则输出有关警告信息。
- C#值传递、引用传递、输出传递详解
- Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console、file等。Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别。
- 根据顶点边数和点信息输出邻接矩阵