假设一个班级有3个人,每个人都会有一些共有的信息:姓名 学号 年龄 分数。
从终端输入每个人的信息,然后按照分数从高到低排序,将信息打印到终端上。
#include<stdio.h>
typedef struct //一个结构体代表一个人
{
char name[15];
int id;
int age;
int score;
}stu;
void input_info( stu *p)
{
printf("name\tID\tAGE\tSCORE\n");
int i;
for(i = 0;i < 3;i ++)
{
scanf("%s%d%d%d",(p + i)->name,&(p + i)->id,&(p + i)->age,&(p + i)->score);
}
}
void sort_info( stu *p)
{
int i,j;
struct stu temp;
for(i = 0;i < 2;i ++)
{
for(j = 0;j < 2 - i;j ++)
{
if((p + j)->score < (p + j + 1)->score)
{
temp = p[j];
p[j] = p[j + 1];
p[j + 1] = temp;
}
}
}
}
void output_info(stu *p)
{
printf("*****华丽的分割线*****\n");
int i;
for(i = 0;i < 3;i ++)
{
printf("%s\t%d\t%d\t%d\n",(p + i)->name,(p + i)->id,(p + i)->age,(p + i)->score);
}
}
int main(int argc, const char *argv[])
{
stu student[3];
input_info(student);
sort_info(student);
output_info(student);
return 0;
}