用C语言编写一程序,统计N个学生的成绩信息。

2025-03-11 08:19:35
推荐回答(3个)
回答1:

#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

{

for(j=i+1;j

{

if(a[i].English

{

temporary=epm[j];

epm[j]=epm[i];

epm[i]=temporary;

}

}

}

for(i=0;i

{

for(j=0;j

{

if(epm[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

{

for(j=i+1;j

{

if(a[i].computer

{

temporary=cpm[j];

cpm[j]=cpm[i];

cpm[i]=temporary;

}

}

}

for(i=0;i

{

for(j=0;j

{

if(cpm[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;

}

}

}

}

void census(struct Stu a[],int n)

{

int i,count=0;

printf("\n数学中不及格的人数有:\n");

for(i=0;i

{

if(a[i].math<60)

{

count++;

printf("学号:%d   姓名:%s   数学:%lf\n",a[i].number,a[i].name,a[i].math);

}

}

printf("共有%d人\n\n",count);

count=0;

printf("英语中不及格的人数有:\n");

for(i=0;i

{

if(a[i].English<60)

{

count++;

printf("学号:%d   姓名:%s   英语:%lf\n",a[i].number,a[i].name,a[i].English);

}

}

printf("共有%d人\n\n",count);

count=0;

printf("计算机中不及格的人数有:\n");

for(i=0;i

{

if(a[i].computer<60)

{

count++;

printf("学号:%d   姓名:%s   计算机:%lf\n",a[i].number,a[i].name,a[i].computer);

}

}

printf("共有%d人\n\n",count);

count=0;

}

void found(struct Stu a[],int n)

{

int i,c;

printf("请输入你要查找的学号:\n");

scanf("%d",&c);

for(i=0;i

{

if(c==a[i].number)

{

printf("姓名:%s   学号:%d\n",a[i].name,a[i].number);

printf("数学:%lf   英语:%lf   计算机:%lf\n",a[i].math,a[i].English,a[i].computer);

}

}

}


回答2:

建议楼主参考 http://zhidao.baidu.com/question/314791834.html?oldq=1
这个问题我以前回答过N遍了,自己看看代码吧。有问题,可以qq联系。

回答3:

我这有类似的,你要不?