-4

これは、私たちの大学の過去の論文から得た質問です。

  1. ユーザーは配列サイズを入力できます
  2. ユーザーは配列にいくつかの値を入力できます;(ユーザーが指定した配列サイズに収まるまで)
  3. ユーザーが入力した配列は、バブル ソート アルゴリズムを使用してソートする必要があります。

例えば

  • サイズ3を入力
  • 3つの数字を入力できるとしましょう12, 2, 5

この2.5.12のようにソートする必要があります

入力関数とバブル ソート アルゴリズム関数の 2 つの関数を使用して、入力関数を次のように記述しました。

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 ループを使用する必要もありません。次のように、関数を 1 回呼び出すだけです。

sort_array(array, score);

配列のベースアドレスを渡すと、配列全体をソートする sort_array 関数に既に for ループがあるため、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);

最初のパラメーターを int ではなく配列として受け取るため、void sort_array(int array[],int score){メインの下で試してみると機能するはずです。

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 に答える