北极浮冰
2017-12-27 01:29
采纳率: 50%
浏览 950
已采纳

冒泡排序总是运行不正确

#include "stdafx.h"
#include
int main(int argc, char* argv[])
{
int swap=0;
int array[10];
printf("输入字符数字\n");
for(int k=0;k {
scanf("%d",&array[k]);
}
for(int i=0;i {
for(int j=0;j {
if(array[j]>array[j+1])
{
swap=array[j];
array[j]=array[j+1];
array[j+1]=array[j];
}
}

}
for(int b=0;b<10;b++)
{
printf("%4d",array[b]);
}
return 0;
}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • threenewbee 2017-12-27 01:37
    已采纳

    图片说明
    问题如果解决,请点下我回答右边的采纳,谢谢

    打赏 评论
  • threenewbee 2017-12-27 01:35

    swap=array[j];
    array[j]=array[j+1];
    array[j+1]=swap; //这里错了

    打赏 评论
  • 红叶笑风尘 2017-12-27 01:37

    for(int i=0;i<array.size()-2;i++){
    for(int j=i;array.size()-1;j++){
    XXXXXX
    }
    }

    主要是第二个for循环里面的j的赋值得和i对应上,不能重0开始

    打赏 评论
  • 刘先生来自农村 2017-12-27 01:43

    你改成这样子试试
    for(int i=0;i<array.size()-1;i++){
    for(int j=i;array.size()-1-i;j++){
    XXXXXX
    }
    }

    打赏 评论
  • 黑码哥 2017-12-27 01:43

    for(int i=0;i<array.size()-2;i++){
    for(int j=i;array.size()-1;j++){
    XXXXXX
    }
    }

    主要是第二个for循环里面的j的赋值得和i对应上,不能重0开始

    打赏 评论
  • qq_39699392 2017-12-27 02:12

    for(int i=0;i<array.size()-1;i++){
    for(int j=i;array.size()-1-i;j++){
    XXXXXX
    }
    }
    楼上正解

    打赏 评论

相关推荐 更多相似问题