猿问

求解 ,为何这个程序后面成绩出不来

/*编写程序,定义用于存储学生信息的结构体数组,输入学生的准考证号、姓名和成绩信息,
成绩包括三个信息:语文、数学、英语,并且用double类型进行成绩的储存。计算每位学生的总分,
并按总分由高到低输出学生信息表。*/
#include<stdio.h>
#define N 2
//inStruct();输入模块
    struct
 {
  char num[11];
  char name[12];
  double score[3];
  
 }stu[N];
void main( )
{
 int i,j,maxi;
 double sum,max;
  for(i=0;i<N;i++)
  {
  printf("准考证号\n");
  scanf("%s",stu[i].num);
  printf("名字\n");
     scanf("%s",stu[i].name);
 
  for(j=0;j<3;j++)
  {
   printf("成绩%d:\n",j+1);
   scanf("%f",&stu[i].score[j]);
  }
  }
  //求和模块 排序
  max=0;
  maxi=0;
  for(i=0;i<N;i++)
  {
   sum=0;
  for(j=0;j<3;j++)
  sum=stu[i].score[j]+sum;
  if(sum>max)
  {
   max=sum;
   maxi=i;
  }
  }
  //输出模块
  printf("NUM     NAME    Chinese   math    ENGLISH        SUM\n");
  printf("_______________________________________________________________________\n");
  for(i=0;i<N;i++)
  {

   printf("\n%-5s%-10s",stu[i].num,stu[i].name);
      for(j=0;j<3;j++)
   printf("%-10.2f",stu[i].score[j]);
   printf("%-9.2f",sum);
  }
}


1383
浏览 1086回答 1
1回答

望远

double数据类型,输入输出格式是%lf话说你这个输出的总分有问题,最后你输出的总分信息一定是一样的,可以在结构体里面加上sum变量。
随时随地看视频慕课网APP
我要回答