ji1812062521
2016-02-26 03:13
采纳率: 78.3%
浏览 2.6k

用冒泡排序法对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;
}

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

4条回答 默认 最新

  • 小灸舞 2016-02-26 03:20
    已采纳

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

    点赞 打赏 评论
  • lovezhouhappy 2016-02-26 03: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;
    }
    从小到大的排序

    点赞 打赏 评论
  • blownewbee 2016-02-26 03: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

    点赞 打赏 评论
  • 为梦而足 2016-02-26 05:43

    #inclucde

    点赞 打赏 评论

相关推荐 更多相似问题