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条)

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程