#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]);}
}
能看出来你代码被吃了. 下次发代码 用代码标签括起来.
问题出在你冒泡排序的地方数组越界. 看不到代码我猜的.仔细检查
而且你貌似只换了m[]这个成绩数组, 应该n 和 y也一起交换的
for(i=0;i {
for(j=i+1;j {
if(m[i]>m[j])
{
temp=m[i];
m[i]=m[j];
m[j]=temp;
}
}
}
你这一段没有写i和j的最大值循环到哪个啊?比如i<=2;i++,没看过你这种写法。。
for(i=0;i<2;i++)
{
printf("%d %s %d",n[i],y[i],m[i]);}
}
这一段i不是<=2吗...