Ashellves 2017-11-09 03:22 采纳率: 100%
浏览 776
已采纳

为什么这个代码运行后会出现

#include
int main(void)
{
char y[3];
int n[3],m[3],i,j,temp;

printf("请依次输入学生\n学号 姓名 成绩\n");
for(i=0;i<=2;i++)
{
printf("同学%d:",i+1);
scanf("%d %s %d",&n[i],&y[i],&m[i]); 

}   

for(i=0;i {
for(j=i+1;j {
if(m[i]>m[j])
{
temp=m[i];
m[i]=m[j];
m[j]=temp;
}
}
}
for(i=0;i<2;i++)
{

printf("%d %s %d",n[i],y[i],m[i]);}
}
![图片说明](https://img-ask.csdn.net/upload/201711/09/1510197712_851212.png)图片说明

  • 写回答

3条回答 默认 最新

  • 郭建堂 2017-11-09 03:56
    关注

    能看出来你代码被吃了. 下次发代码 用代码标签括起来.

    问题出在你冒泡排序的地方数组越界. 看不到代码我猜的.仔细检查
    而且你貌似只换了m[]这个成绩数组, 应该n 和 y也一起交换的

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

报告相同问题?