用C语言编写程序:从键盘输入一个班10个学生的学号和每个学生考试三门功课。

从键盘输入一个班10个学生的学号和每个学生考试三门功课(高等数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生平均成绩优劣排序,最后打印一张按高分到低分名次排序的成绩表。
要求:打印的成绩单表项包括:序号,学号、高数、英语、计算机基础、总分、平均分。要有良好的人机交互界面。

struct students
{
  char num[7];
  char name[20];
  int scores[3];
  float ave;
  float max;
};
main()
 {
   struct students stu[4];
   int m,n,i=0;
   float sum,max=0;
   for(m=0;m<4;m++)
    {
     printf("input the No:%d student's:\n",m+1);
     printf("school_num name:\n");
     scanf("%s%s",stu[m].num,stu[m].name);
     printf("Scores of subject:\n");
     for(n=0;n<3;n++)
     {
      scanf("%d",&stu[m].scores[n]);
     }
    }
    for(m=0;m<4;m++)
     {
      sum=0;
       for(n=0;n<3;n++)
       {
 sum+=stu[m].scores[n];
 stu[m].ave=sum/3.0;
       }
       printf("%s'saverage is %5.2f.\n",stu[m].name,stu[m].ave);
     }
     for(m=0;m<4;m++)
     {
      if(stu[m].ave>max)
      {
       max=stu[m].ave;
       i=m;
       }
     printf("%s %s's the max is %5.2f.\n",stu[i].num,stu[i].name,stu[i].ave);
     }
  for(n=0;n<3;n++)
  {
  printf("%-4d",stu[i].scores[n]);

温馨提示:答案为网友推荐,仅供参考
相似回答