2 ji1812062521 ji1812062521 于 2016.02.26 11:13 提问

用冒泡排序法对10个数排序,怎么错了啊?
c++

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

4个回答

qq423399099
qq423399099   Ds   Rxr 2016.02.26 11:20
已采纳

你的第二个for这里for (i = 0; i < 10-j;i++)
判断条件应该改为i < 9 - i
不然你i=0的时候下面的if会出现a[9]和a[10]比较,显然报错了

qq423399099
qq423399099 打错了,应该是i<9-j
接近 2 年之前 回复
lovezhouhappy
lovezhouhappy   2016.02.26 11:20

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;
}
从小到大的排序

caozhy
caozhy   Ds   Rxr 2016.02.26 11:23

程序没错啊。
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

u012621177
u012621177   2016.02.26 13:43

#inclucde

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!