房天下 > 房天下问答 > 业主生活 > 其他
  • 编译和连接无误但运行错误

    #include <stdio.h>struct student{int num;char name[10];double score[3];double aver;};void main(){ void input(struct student stu[]); struct student max(struct student stu[]); struct student stu[10],*p=stu; input(p); max(p); } void input(struct student stu[]){ int i; printf("请输入各学生的信息:学号、姓名、三门课成绩:\n"); for (i=0;i<10;i++) {scanf("%d,%s,%f,%f,%f",stu[i].num,&stu[i].name,stu[i].score [0],stu[i].score [1],stu[i].score [2]);} }struct student max(struct student stu[]){ int i,m=0; stu[i].aver=(stu[i].score [0] +stu[i].score [1] +stu[i].score [2])/3.0; for(i=1;i<10;i++) {if(stu[i].aver>stu[m].aver)m=i; } return stu[m]; printf("平均成绩最高的学生是:\n"); printf("学号:%d\n姓名:%s\n三门课成绩:%5.1f,%5.1f,%6.1f\n平均成绩:%6.2f\n",stu[m].num,stu[m].name,stu[m].score[0],stu[m].score[1],stu[m].score[2],stu[m].aver ); }帮我试一下好吗 谢谢!

    提问者:abo7462

    发布于2010-12-14

共1个回答
  • 我不安你乱 丨Lv 2
    你的程序max函数中:int i,m=0; stu[i].aver=(stu[i].score [0] +stu[i].score [1] +stu[i].score [2])/3.0; for(i=1;i<10;i++) {if(stu[i].aver>stu[m].aver)m=i; }你这样声明变量,i是不是赋值了.你试下.还有这几句只对 stu[0].aver进行了赋值,其它的没赋值就用,肯定会报错.
    +1 2010-12-14 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。