青亭浅 2022-11-28 23:06 采纳率: 86.4%
浏览 14
已结题

这个怎么应该改,实际输出为无,这样写对吗


#include<stdio.h>
struct student{
  int id;
  char name[10];
  float score[3];
}stu[5];
int main()
{
  float sum[5]={0};
  float avg[5];
  float max;
  float sum1=0;
  int i,j,a;
  for(i=0;i<5;i++){
    scanf("%d%s",&stu[i].id,&stu[i].name);
    for(j=0;j<3;j++){
      scanf("%f",&stu[i].score[j]);
    }
  }
  for(i=0;i<5;i++){
    for(j=0;j<3;j++){
      sum[i]+=stu[i].score[j];
    }
    avg[i]=sum[i]/3;
  }
  for(i=0;i<5;i++){
    sum1+=sum[i];
  }
  max=sum[0];
  for(i=1;i<5;i++){
    if(max<sum[i]){
      max=sum[i];
      a=i;
    }
  }
  printf("NO. name score1 score2 score3 average\n");
  for(i=0;i<5;i++){
    printf("%d %s %0.2f %0.2f %0.2f %0.2f\n",stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],avg[i]);
  }
  printf("average=%0.2f\n",sum1/15);
  printf("The highest score is : student %d,%s\n",stu[a].id,stu[a].name);
  printf("his scores are:%6.2f,%6.2f,%6.2f,average:%0.2f.",stu[a].score[0],stu[a].score[1],stu[a].score[2],avg[a]);
  return 0;
}

img

img

  • 写回答

1条回答 默认 最新

  • 浪客 2022-11-28 23:43
    关注

    scanf("%d%s", &stu[i].id, stu[i].name); stu[i].name已经是指针,不需要加&
    sum和avg放到struct student里会更好一些。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月2日
  • 已采纳回答 12月2日
  • 创建了问题 11月28日

悬赏问题

  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法