2017-12-29 31 views
0

私は学生のID番号を保持している2つの配列を持っていると2番目のグレードを保持している.. 私はグレードの配列にソートされた方法でグレードを挿入したい..ここで私は前に配列がソートされたと仮定。 私の問題は、..私は学生の配列は、例えばグレードの配列に応じてもソート維持したいということです2つの配列をソートする方法バブルソートを使用して最初のソートをソートする場所はどこですか?

グレード配列= [100 90 80]

students_id配列= [11 22 33]

と私は私が有するであろうID 44とグレード95を挿入する:

グレードアレイ= [100 95 90 80]

//

students_id配列= [11 44​​ 22 33]

私はこれを行うことができる方法の任意のアイデア?

void insertGrade(int* grades, int* students_id, int id , int grade){ 


} 


void bubble_sort(int* array, int n) 
{ 
    int c, d, t; 

    for (c = 0 ; c < (n - 1); c++) 
    { 
    for (d = 0 ; d < n - c - 1; d++) 
    { 
     if (array[d] > array[d+1]) 
     { 
     /* Swapping */ 

     t = array[d]; 
     array[d] = array[d+1]; 
     array[d+1] = t; 
     } 
    } 
    } 
} 
+0

まだ構造について学んだことはありますか?それが何を使用すべきかです。それらをまだカバーしていない場合は、スワップを実行するときに両方の配列の要素を交換する必要があります。 –

+0

標準C言語を使用するのではなく、ソートアルゴリズムを実装するのはなぜですか? –

+0

bubbleSortがここでの要件でない限り、グレード配列がまだソートされている位置にグレードを配置する方法です。グレード配列を再度ソートする必要はありませんが、すでにインデックスを知っています生徒のID –

答えて

0

\機能への第二の配列を渡します。私は、アレイへのグレードを挿入してから最初の配列のためにバブルソートを使用しますが、私はあまりにもソートされた他の1を維持する方法を知りませんでしたかもしれませんthoght。 array1の項目を交換すると同時に、array2の項目を入れ替えます。

void bubble_sort(int* array, int* array2, int n) 
{ 
    int c, d, t; 

    for (c = 0 ; c < (n - 1); c++) 
    { 
    for (d = 0 ; d < n - c - 1; d++) 
    { 
     if (array[d] > array[d+1]) 
     { 
     /* Swapping */ 

     t = array[d]; 
     array[d] = array[d+1]; 
     array[d+1] = t; 


     t = array2[d]; 
     array2[d] = array2[d+1]; 
     array2[d+1] = t;  
     } 
    } 
    } 
} 
関連する問題