冒泡排序总是运行不正确

#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;
}

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

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

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

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

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

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

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

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