-4

这是我从我们大学过去的一篇论文中得到的一个问题:

  1. 用户可以输入数组大小
  2. 用户可以在数组中输入一些值;(直到它适合用户给定的数组大小
  3. 用户输入的数组应该使用冒泡排序算法进行排序

例如

  • 我输入尺寸 3
  • 我可以输入三个数字让我们假设12, 2, 5

应该是这样排序的 2.5.12

使用两个函数,一个输入函数和冒泡排序算法函数,我将输入函数写成这样:

void input_score(int array[], int score)
{
    for(int i=0; i<score; i++)
    {
        cout<<"enter the machine values\n";
        cin>>array[i];
    }
  for(int i=0; i<score; i++)
    {
        cout<<array[i];
    }
}

然后我想调用冒泡排序算法函数对其进行排序并打印:

void sort_array(int array[],int score){
    int temp;
    for(int i=0;i<score;i++){
        for(int j=i+1;j<score;j++){
            if(array[i]>array[j]){
                temp=array[i];
                array[i]=array[j];
                array[j]=temp;
            }
        }
    }

    cout<<"Sorted elements\n";

    for(i=0;i<score;i++)
        cout<<array[i]<<"\n;
}

所以我在输入函数中写了这样的语句

for(i=0;i<=size;i++){
   sort_array(array[i],size);
}

我对么?顺便说一下,这是我的主要功能

int main()
{
    cout<<" enter number of machines\n";
    int a;
    cin>>a;
    int array[a];
    input_score(array,a);
}
4

2 回答 2

2

我不知道你从哪里调用排序函数,但你应该从函数 input_score 调用它。并且也不需要使用 for 循环来调用排序函数。只需调用一次函数,例如:

sort_array(array, score);

没有 for 循环,因为 sort_array 函数中已经有 for 循环,一旦您传递数组的基地址,它将对整个数组进行排序。

并且,确保您从 input_score 或 main 函数调用 sort_array。

于 2013-05-22T13:58:48.487 回答
2

不,你不应该打电话

for(i=0;i<=size;i++){ sort_array(array[i],size) }

你应该打电话

sort_array(array,a);

因为您void sort_array(int array[],int score){将第一个参数作为数组而不是 int .. 在 main 下面尝试它应该可以工作。

int main()
{
    cout<<" enter number of machines\n";
    int a;
    cin>>a;
    int array[1000];
    input_score(array,a);
    sort_array(array,a);
}

或者如果你想在输入中调用排序...

void input_score(int array[], int score)
{
    for(int i=0; i<score; i++)
    {
        cout<<"enter the machine values\n";
        cin>>array[i];
    }
  for(int i=0; i<score; i++)
    {
        cout<<array[i];

    }
    sort_array(array,score);
}
于 2013-05-22T13:39:02.797 回答