#include
#include
#define sm 50
struct Stu
{
int mc;
int number;
char name[10];
double math;
double English;
double computer;
};
void px(struct Stu [],int);
void census(struct Stu [],int);
void found(struct Stu [],int);
int main(int argc,char * argv[])
{
int n,i;
struct Stu stud[sm];
printf("请输入学生人数:\n");
scanf("%d",&n);
printf("请输入每个学生的信息:\n");
for(i=0;i { printf("第%d个学生:\n",i+1); stud[i].mc=i+1; printf("输入学号:"); scanf("%d",&stud[i].number); printf("输入姓名:"); scanf("%s",stud[i].name); printf("输入数学成绩:"); scanf("%lf",&stud[i].math); printf("输入英语成绩:"); scanf("%lf",&stud[i].English); printf("输入计算机成绩:"); scanf("%lf",&stud[i].computer); printf("\n"); } px(stud,n); census(stud,n); found(stud,n); system("pause"); return 0; } void px(struct Stu a[],int n) { int i,j,temporary,mpm[sm],epm[sm],cpm[sm]; double zf[sm]; for(i=0;i { mpm[i]=i+1; epm[i]=i+1; cpm[i]=i+1; } for(i=0;i { zf[i]=a[i].math+a[i].English+a[i].computer; } for(i=0;i { for(j=i+1;j { if(zf[i] { temporary=a[j].mc; a[j].mc=a[i].mc; a[i].mc=temporary; } } } printf("\n根据总分情况排名如下:\n"); for(i=0;i { for(j=0;j { if(a[i].mc==j+1) { printf("第%d:\n",i+1); printf("名字:%s 学号:%d\n",a[j].name,a[j].number); printf("数学:%lf 英语:%lf 计算机:%lf\n",a[j].math,a[j].English,a[j].computer); break; } } } printf("根据数学情况排名如下:\n"); for(i=0;i { for(j=i+1;j { if(a[i].math
{ temporary=mpm[j]; mpm[j]=mpm[i]; mpm[i]=temporary; } } } for(i=0;i { for(j=0;j { if(mpm[i]==j+1) { printf("第%d:\n",i+1); printf("名字:%s 学号:%d\n",a[j].name,a[j].number); printf("数学:%lf 英语:%lf 计算机:%lf\n",a[j].math,a[j].English,a[j].computer); break; } } } printf("根据英语情况排名如下:\n"); for(i=0;i {
建议楼主参考 http://zhidao.baidu.com/question/314791834.html?oldq=1
这个问题我以前回答过N遍了,自己看看代码吧。有问题,可以qq联系。
我这有类似的,你要不?