一个c++程序,帮改一下错

来源:百度知道 编辑:UC知道 时间:2024/06/17 07:24:25
#include <cstdlib>
#include <iostream>
#include <iomanip>

using namespace std;
main()
{ int a[10];
int sum;
cout<<"请输入10个数字\n" ;

for( int b=0;b<10;b++)
{cin>>a[b];
for( int i=0;i<9;i++){
for( int j=i+1;j<10;j++){
if(a[i]>a[j]){
sum=a[i];
a[i]=a[j];
a[j]=sum;
};
};
};
};

for(int c=0;c<10;c++) cout<<a[c]<<'\n';
system("pause");
}
本意是将这10个数用冒泡法排列起来,没想到结果不尽人意。各位高手帮解答一下。

你是不是应该将输入完成以后再进行排列??
举个例子,当你输入下标为0的数据时,下标为1的元素是没有进行初始化的,不能对其进行操作,否则就会出错的!

for( int b=0;b<10;b++)
{cin>>a[b]; }

for( int i=0;i<9;i++){
for( int j=i+1;j<10;j++){
if(a[i]>a[j]){
sum=a[i];
a[i]=a[j];
a[j]=sum;
};
};
};
按照上面的意思,改成这样。