学生成绩单制作 (1)定义一个结构体数组,存放10个学生的学号,姓名,三门课的成绩。

(2)从键盘输入10个学生的以上内容
(3)输出单门课成绩最高的学生的学号,姓名。以及该门课程的成绩
(4)输出三门课程的平均分数从最高到低进行排序,输出结果格式如下
number name math chinese english average
103 tom 90 90 100 95 101 alice 90 80 70 80

#include<stdio.h>
struct person
{int num,m,c,e;
float ave;
char name[20];
}man[2];
main()
{int i,j,maxm,maxc,maxe,a=0,b=0,c=0;
float t;
for(i=0;i<2;i++)
{scanf("%d,%d,%d,%d\n",&man[i].num,&man[i].m,&man[i].c,&man[i].e);
scanf("%s",&man[i].name);
man[i].ave=(man[i].m+man[i].c+man[i].e)/3.0;}
maxm=man[0].m,maxc=man[0].c,maxe=man[0].e;
for(i=0;i<10;i++)
if(maxm<man[i].m)
a=i;
if(maxc<man[i].c)
b=i;
if(maxe<man[i].e)
c=i;
printf("number name math\n");
printf("%-10d%-6s%8d\n",man[a].num,man[a].name,man[a].m);
printf("number name chinese\n");
printf("%-10d%-6s%6d\n",man[b].num,man[b].name,man[b].c);
printf("number name english\n");
printf("%-10d%-6s%6d\n",man[c].num,man[c].name,man[c].e);
for(i=0;i<1;i++)
for(j=i+1;j<2;j++)
if(man[i].ave<man[j].ave)
{t=man[i].ave;
man[i].ave=man[j].ave;
man[j].ave=t;}
printf("number name math chinese english average\n");
for(i=0;i<2;i++)
printf("%-10d%-6s%10d%6d%10d%15f\n",man[i].num,man[i].name,man[i].m,man[i].c,man[i].e,man[i].ave);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-31
#difine N 10
type struct{
int Number;
char name;
float math;
float chinese;
float rnglish;
} student[N];
相似回答