ada13 2021-01-07 09:00 采纳率: 100%
浏览 11
已采纳

有没有大神看出来我这串代码问题到底出在了哪里啊?

#include<stdio.h>
#include<stdlib.h>
typedef struct STUDENT
{
    long ID;
    char classname[32];
    char name[32];
    float score[3];
    float ave;
 } student;
 void shuju(student stu[],int n);
 void average(student stu[],int n);
 int max(student stu[],int n);
 int main()
 {
     student stu[1204];
     int n;
     scanf("%d",&n);
     int i,a;
     shuju(stu,n);
     average(stu,n);
     
     for(i=0;i<n;i++)
     {
         printf("%s\n",stu[i].name);
         printf("%.1f\n",stu[i].ave);
      } 
    a = max(stu,n);  
      printf("%ld %s %s %.1f %.1f %.1f %.1f",stu[a].ID,stu[a].classname,stu[a].name,stu[a].score[0],stu[a].score[1],stu[a].score[2],stu[a].ave);
      printf("\n");
      return 0; 
 }
 void shuju(student stu[],int n)
 {
     int i,j;
     for(i=0;i<n;i++)
     {
         scanf("%ld%s%s",&stu[i].ID,&stu[i].classname,&stu[i].name);
         for(j=0;j<3;j++)
         {
             scanf("%f",&stu[i].score[j]);
         }
     }
 }
 void average(student stu[],int n)
 {
     int i,j,t;
     for(i=0;i<1;i++)
     {
     t=0;
     for(j=0;j<3;j++)
     {
         t+=stu[i].score[j];
      } 
      stu[i].ave=t*1.0/3;
 }
}
 int max(student stu[],int n)
 { 

     int i,m;
     float temp =stu[0].ave;
     
     for(i=0;i<n;i++)
     {
         if(stu[i].ave>temp)
         {
             temp=stu[i].ave;
             m=i;
         }
     }
     return m;
}
 

  • 写回答

8条回答 默认 最新

  • :)黑€夜&王座$ 2021-01-07 11:14
    关注

    你自己写的shuju()中的scanf类型不匹配

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 个人网站被恶意大量访问,怎么办
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制