用冒泡排序法对10个数排序,怎么错了啊?
#include
using namespace std;
int main()
{
int a[10],i,j, t;
cout << "input 10 numbers:" << endl;
for (i = 0; i < 10; i++)
cin >> a[i];
cout << endl;
for (j = 0; j < 9;j++)
for (i = 0; i < 10-j;i++)
if( a[i] > a[i + 1]) {
t = a[i]; a[i] = a[i + 1]; a[i + 1] = t;
}
cout <<"the sorted numbers :" << endl;
for (i = 0; i < 10; i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
你的第二个for这里for (i = 0; i < 10-j;i++)
判断条件应该改为i < 9 - i
不然你i=0的时候下面的if会出现a[9]和a[10]比较,显然报错了
for (j = 0; j < 9;j++)
for (i = j; i < 10-j;i++)
if( a[j] > a[i+ 1]) {
t = a[j]; a[i] = a[i + 1]; a[i+ 1] = t;
}
从小到大的排序
程序没错啊。
input 10 numbers:
3 1 1 0 10 9 6 2 3 55
the sorted numbers :
0 1 1 2 3 3 6 9 10 55
Press any key to continue
#inclucde