#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX_LINE 1024
struct Student{
int sno[18];
char name[20];
char sex[20];
int age;
int chengji;
};
int lessthan(Student a, Student b) {
return a.chengji < b.chengji? 1 : 0;
}
void sort(Student *student) {
for (int i = 0; i <20; ++i) {
for (int j = i + 1; j <20; ++j) {
if (lessthan(student[i], student[j])) {
Student tmp = student[i];
student[i] = student[j];
student[j] = tmp;
}
}
}
}
void print(Student student) {
printf("%-10s%-10s%-10s%-10d%-10d%\n",
student.sno,
student.name,
student.sex,
student.age,
student.chengji);
}
int main()
{
Student a[21];
int i,sum=0,max=-1;
FILE *fp;
for(i=0;i<20;i++)
{
scanf("%s %s %s %d %d",a[i].sno,a[i].name,a[i].sex,&a[i].chengji,&a[i].age);
if(a[i].chengji>max) max=a[i].chengji;
sum+=a[i].chengji;
}
printf("平均分是:%.2f\n",sum/20.0);
printf("不及格的学生有:\n");
int count=0;
for(i=0;i<20;i++)
{
if(a[i].chengji<60){
print(a[i]);
count++;}
}
if(count==0) printf("没有不及格的学生\n");
sort(a) ;
fp=fopen("data.txt","w");
if(fp==NULL)
{
printf("File cannot open! " );
exit(0);
}
for(i=0; i<20; i++)
{
fprintf(fp,"%s %s %s%d%d\n",a[i].sno,a[i].name,a[i].sex,a[i].age,a[i].chengji );
}
for (int i = 0; i <20; ++i) {
fprintf(fp, "%s %s %s %d %d\n",
a[i].sno,
a[i].name,
a[i].sex,
a[i].age,
a[i].chengji);
}
printf("排序后的学生信息\n");
for (int i = 0; i <20; ++i) {
print(a[i]);
}
printf("最高分:\n");
for (int i = 0; i <20; ++i) {
if(a[i].chengji==max)
print(a[i]);
}
}
测试数据:
20198907 张三 男 100 17
20192676 李四 女 45 18
20197667 王五 男 99 18
20192344 刘娜 女 76 16
20194567 李伟 男 25 17
20192934 曾派 女 78 19
20198908 颜三 男 90 20
20192677 孟四 女 85 19
20197697 孔五 男 69 19
20192324 郑娜 女 36 19
20194517 吴伟 男 45 19
20192934 周派 女 38 19
20198947 孙三 男 100 19
20192696 钱四 女 45 19
20197607 赵五 男 29 19
20192354 邢娜 女 16 19
20194237 古伟 男 75 19
20192444 薛派 女 78 19
20194557 张伟 男 25 19
20192664 李派 女 78 19