【着急,在线等】C++编译成功,但是实际运行就提示出错。找不到哪里越界了...有人答对+20
答案:2 悬赏:10 手机版
解决时间 2021-03-31 22:47
- 提问者网友:做自己de王妃
- 2021-03-31 04:12
【着急,在线等】C++编译成功,但是实际运行就提示出错。找不到哪里越界了...有人答对+20
最佳答案
- 五星知识达人网友:青尢
- 2021-03-31 05:35
main函数里的for(int i=0;i<=4 ;i++)循环是多余的吧
sort里的内循环应该是jsort函数内循环是要比较出这里面最大比pi[j]->avg里面最大的,从大到小以此排序追答5组每组有5个数据的话,最开始时把index和stu的关系建立好,或者在内循环里对index[i]赋值,另外内外循环用不同的变量
排序的顺序由if (pi[j]->avg > pi[j+1] ->avg)决定的,用4-i是错的追问那应该怎么改?追答int main(){
student stu[5],*index[5];
for(int j=0; j<5; j++){
for(int i=0;i<=4 ;i++){
index[i] = stu +i;
cin >> stu[i].id >>stu[i].name >> stu[i] .cn >> stu[i].ma >> stu[i].en ;
stu[i].avg = (stu[i].cn +stu[i].ma +stu[i].en)/3;
}
sort (stu,index);
output (stu,index);
}
}
void sort (student su[], student *pi[]){
int i,j;
student *tmp;
for(i=1; i<5 ;i++){
for( j=0;j<=i;j++){
if (pi[j]->avg > pi[j+1] ->avg){
tmp = pi[j];
pi[j] = pi[j+1];
pi[j+1] = tmp;
}
}
}
}
sort里的内循环应该是jsort函数内循环是要比较出这里面最大比pi[j]->avg里面最大的,从大到小以此排序追答5组每组有5个数据的话,最开始时把index和stu的关系建立好,或者在内循环里对index[i]赋值,另外内外循环用不同的变量
排序的顺序由if (pi[j]->avg > pi[j+1] ->avg)决定的,用4-i是错的追问那应该怎么改?追答int main(){
student stu[5],*index[5];
for(int j=0; j<5; j++){
for(int i=0;i<=4 ;i++){
index[i] = stu +i;
cin >> stu[i].id >>stu[i].name >> stu[i] .cn >> stu[i].ma >> stu[i].en ;
stu[i].avg = (stu[i].cn +stu[i].ma +stu[i].en)/3;
}
sort (stu,index);
output (stu,index);
}
}
void sort (student su[], student *pi[]){
int i,j;
student *tmp;
for(i=1; i<5 ;i++){
for( j=0;j<=i;j++){
if (pi[j]->avg > pi[j+1] ->avg){
tmp = pi[j];
pi[j] = pi[j+1];
pi[j+1] = tmp;
}
}
}
}
全部回答
- 1楼网友:行雁书
- 2021-03-31 06:04
也有可能是你的C程序与系统不兼容,我之前就遇到过这种情况。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯