排序算法给出了错误的结果

时间:2014-02-13 10:11:23

标签: c++ sorting bubble-sort

#include<iostream>
#include<conio.h>

using namespace std;

int main()
{
    int a, b, c[5], d;

    cout << "enter any five number\n";
    for(a=0; a<5; a++)
    {
        cin>>c[a];
    }
    for(a=0; a<5; a++)
    {
        for(b=++a; b<5; b++)
        {
            if(c[b] < c[a])
            {
                d = c[b];
                c[b] = c[a];
                c[a] = d;
            }
        }       
    }

    cout << "\nhere is the entered numbers in order\n"; 
    for(a=0; a<5; a++)
    {
        cout << c[a];
        cout << endl;
    }
    getch();
    return 3;
}

我正在检查这个程序,我希望程序按升序对数字进行排序,但我得到了错误的输出帮助。

4 个答案:

答案 0 :(得分:1)

内圈中的

应该是a + 1而不是++a

答案 1 :(得分:1)

for(a=0;a<5;a++)for(b=++a;..)会导致a两次递增。

您的意思是for(b=a+1;b<5;b++)吗?

答案 2 :(得分:0)

   for(a=0; a<5; a++)
    {
        for(b=++a; b<5; b++)
        {
            if(c[b] < c[a])
            {
                d = c[b];
                c[b] = c[a];
                c[a] = d;
            }
        }       
    }

这应该是

for(a=0; a<4; a++)
{
    for(b=a+1; b<5; b++)
    {
        if(c[b] < c[a])
        {
            d = c[b];
            c[b] = c[a];
            c[a] = d;
        }
    }       
}

答案 3 :(得分:0)

for(a=0; a<5-1; a++){
  for(b=0; b<5-a-1; b++){
    if(c[b] < c[a]){
      d = c[b];
      c[b] = c[a];
      c[a] = d;
    }
  }
}