标题:请大家看看`错在哪里了
只看楼主
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
结帖率:66.67%
 问题点数:0 回复次数:2 
请大家看看`错在哪里了

#include<stdio.h>
struct stu
{
int num;
char sex;
char name[9];
int class1;
int class2;
int class3;
int class4;
float avg;
};

main()
{
int i,j,k,m;
struct stu ss[4];
for(i=0;i<5;i++)
{
printf("Please enter number %d student's information:\n",i+1);
scanf("%d,%c,%s,%d,%d,%d,%d",&ss.num,&ss.sex,&ss.name,&ss.class1,&ss.class2,&ss.class3,&ss.class4);
ss.avg=(ss.class1+ss.class2+ss.class3+ss.class4)/4;
}

m=0;
for(i=0,k=1;k<5;i++,k++)
{
if (ss.avg<ss[k].avg)
{
m=k;
}
else
{
m=i;
}


}

printf("%d,%c,%s,%.2f\n",ss[m].num,ss[m].sex,ss[m].name,ss[m].avg);

}

按要求输入好学生信息之后说CPU遇到无效指令终止,想不通什么原因

搜索更多相关主题的帖子: include number 
2007-06-26 18:19
yflovehj
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2007-6-2
得分:0 
你的第二个循环出错了,数组下标超界了/
2007-06-26 21:14
huangfengchu
Rank: 1
等 级:新手上路
威 望:2
帖 子:274
专家分:0
注 册:2007-5-22
得分:0 

scanf("%d,%c,%s,%d,%d,%d,%d",&ss[i].num,&ss[i].sex,&ss[i].name,&ss[i].class1,&ss[i].class2,&ss[i].class3,&ss[i].class4);
ss[i].avg=(ss[i].class1+ss[i].class2+ss[i].class3+ss[i].class4)/4;//不加下标怎么存储,区分。
}
m=0;
for(k=1;k<5;k++)
{
if (ss.avg[0]<ss[k].avg)//用0号元素中平均数与其他相比
{
m=k;
}
else
{
m=0;//如若都小于或等于0号元素,就把m赋值为0;
}


}

printf("%d,%c,%s,%.2f\n",ss[m].num,ss[m].sex,ss[m].name,ss[m].avg);//这也就是输出0好元素的值,就是最大的那平均数。

}

[此贴子已经被作者于2007-6-26 21:40:09编辑过]


深山苦学C语言,终年不见外面世界。
2007-06-26 21:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-150540-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.229451 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved