C语言学号科目成绩请帮忙设计

来源:百度知道 编辑:UC知道 时间:2024/06/08 17:03:23
学号 C课程成绩 英语成绩
101000 83 54
101001 40 79
101002 65 88
101003 54 76
101004 84 97
101005 76 87
求1、从键盘输入数据后首先正确显示数据
2、计算并显示每门课的平均成绩
3、找到并显示每门课最高、最低分和对应学号
4、计算每人平均成绩
5、把每人平均成绩从高到低排列
6、把每门课成绩有低到高按顺序排列,对应学号
每多少分 请大家见谅 谢谢高手指点!

下面是我编的程序,编得不怎么好,望多多指教。
#include <stdio.h>
#include <stdlib.h>
#define MAX 100

typedef struct
{long num;
float c;
float eng;
}stud;

void print(stud *p,int n)
{int i;
printf("\nthere are %d records:",n);
printf("\nNUM C ENG\n");
for(i=0;i<n;i++,p++)
printf("%5ld %3f %3f\n",p->num,p->c,p->eng);
}

void everage_course(stud *p,int n)
{int i;
float sub1=0,sub2=0;
printf("\nthe everage score of every course");
for(i=0;i<n;i++,p++)
{sub1+=p->c;
sub2+=p->eng;
}
printf("\n%4f\n%4f",sub1/n,sub2/n);
}

void find(stud M[],int n)
{int i;
long A[4];
float max1=0,max2=0,min1=0,min2=0;
for(i=0;i<n;i++)
{
if(max1<M[i].c) {max1=M[i].c;A[0]=M[i].num;}
if(min1