qq_27578995 2015-06-13 15:32 采纳率: 100%
浏览 1499
已采纳

 为什么这不排序错了?

#include

int main(int argc, const char * argv[]) {
// insert code here...
int i,j;
int a[10];
int iTemp;
int iPos;
printf("为数组元素赋值: \n");
/*从键盘为数组元素赋值*/
for (i=0; i<10; i++) {
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
//从小到大排序
for (i=0; i<9;i++) {
iTemp=a[i];
iPos=i;
for (j=i+1; j<10; j++) {
if (a[j]<iTemp) {
iTemp=a[j];
iPos=j;
}/*交换两个元素*/
a[iPos]=a[i];
a[i]=iTemp;
}
}
//输出数组
for (i=0; i<10; i++) {
printf("%d\t",a[i]);
if (i==4) {
printf("\n");
}
}
return 0;
}

  • 写回答

5条回答 默认 最新

  • danielinbiti 2015-06-13 15:36
    关注
     //从小到大排序
    for (i=0; i<9;i++) {
    iTemp=a[i];
    iPos=i;
    for (j=i+1; j<10; j++) {
    if (a[j]<iTemp) {
    iTemp=a[j];
    iPos=j;
    }/*交换两个元素*/
    a[iPos]=a[i];
    a[i]=iTemp;
    }
    }
    这段代码是错的,改改,改成下面
    //从小到大排序
    for (i=0; i<9;i++) {
    for (j=i+1; j<10; j++) {
        if (a[j]<a[i]) {
            iTemp = a[i];
            a[i]=a[j];
            a[j]=iTemp;
        }/*交换两个元素*/
    }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料