代码如下:
#include <stdio.h>
#include <string.h>
typedef struct Student
{
char name[128];
int study;
int chinese;
int math;
int English;
}studata;
void intput(studata *p);
void my_sort(studata *p);
int main(int argc, const char *argv[])
{
struct Student studata[6];
/*-------------录入显示----------------*/
intput(studata);
/*-------------排序显示----------------*/
my_sort(studata);
return 0;
}
void intput(studata *p){
int i = 0;
for(i=0;i<6;i++){
printf("请输入第%d个学生的信息:\n",i+1);
printf("姓名:");
gets(p[i].name);
printf("学号:");
scanf("%d",&p[i].study);
printf("语文成绩:");
scanf("%d",&p[i].chinese);
printf("数学成绩:");
scanf("%d",&p[i].math);
printf("英语成绩:");
scanf("%d",&p[i].English);
getchar();
}
printf("-----------------录入显示---------------------\n");
printf("\n");
printf("\n");
for(i=0;i<6;i++){
printf("第%d名: 姓名:%s\t 学号:%d\t 语文成绩:%d\t 数学成绩:%d\t 英语成绩:%d\n",i+1,p[i].name,p[i].study,p[i].chinese,p[i].math,p[i].English);
}
printf("\n");
printf("\n");
}
void my_sort(studata *p){
studata temp;
int i = 0;
int j = 0;
for(i=0;i<5;i++){
for(j=0;j<6-i-1;j++){
if(p[j].math<p[j+1].math){
temp = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
}
}
printf("\n");
printf("\n");
printf("-----------------排序结果显示---------------------\n");
printf("\n");
printf("\n");
for(i=0;i<6;i++){
printf("第%d名: 姓名:%s\t 学号:%d\t 语文成绩:%d\t 数学成绩:%d\t 英语成绩:%d\n",i+1,p[i].name,p[i].study,p[i].chinese,p[i].math,p[i].English);
}
}
ubunt
终端执行结果:
-----------------录入显示---------------------
第1名: 姓名:张三 学号:11 语文成绩:122 数学成绩:122 英语成绩:122
第2名: 姓名:李四 学号:12 语文成绩:119 数学成绩:119 英语成绩:119
第3名: 姓名:王五 学号:13 语文成绩:126 数学成绩:126 英语成绩:126
第4名: 姓名:赵六 学号:14 语文成绩:145 数学成绩:145 英语成绩:145
第5名: 姓名:谢七 学号:15 语文成绩:139 数学成绩:139 英语成绩:139
第6名: 姓名:任八 学号:16 语文成绩:129 数学成绩:129 英语成绩:129
-----------------排序结果显示---------------------
第1名: 姓名:赵六 学号:14 语文成绩:145 数学成绩:145 英语成绩:145
第2名: 姓名:谢七 学号:15 语文成绩:139 数学成绩:139 英语成绩:139
第3名: 姓名:任八 学号:16 语文成绩:129 数学成绩:129 英语成绩:129
第4名: 姓名:王五 学号:13 语文成绩:126 数学成绩:126 英语成绩:126
第5名: 姓名:张三 学号:11 语文成绩:122 数学成绩:122 英语成绩:122
第6名: 姓名:李四 学号:12 语文成绩:119 数学成绩:119 英语成绩:119