2017-12-29 22 views
0

Ich habe zwei Arrays eine hält Studenten ID-Nummern und die zweite hält dort Noten .. Ich möchte eine Klasse in die Klasse Array in einer sortierten Weise einfügen .. wo ich davon ausgehen, dass das Array vor sortiert wurde. mein Problem ist, dass ich die Schüler-Array sortierte auch nach dem Grad des Arrays zum Beispiel halten will ..Wie sortiere ich zwei Arrays zusammen, wobei das erste mit Blasensortieren sortiert wird?

Qualitäten array = [100 90 80]

students_id array = [11 22 33]

und ich möchte 44 Grad 95 mit dem ID einzufügen, dann wird i Atomen sein:

Typen array = [100 95 90 80]

students_id array = [11 44 ​​22 33]

// jede Vorstellung davon, wie ich dies tun kann? i thoght ich könnte die Note in das Array einfügen und dann Blasensortierung für das erste Array verwenden, aber ich weiß nicht, wie die anderen auch sortiert zu halten: \

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

Haben Sie schon von Strukturen gelernt? Das sollte verwendet werden. Wenn Sie sie noch nicht behandelt haben, müssen Sie Elemente in beiden Arrays austauschen, wenn Sie den Swap durchführen. –

+0

Warum implementieren Sie einen Sortieralgorithmus, anstatt die Standard C zu verwenden? –

+0

Wenn bubbleSort hier nicht erforderlich ist, müssen Sie die Note an einer Position platzieren, an der das Notenfeld noch sortiert ist. Auf diese Weise müssen Sie das Notenfeld nicht erneut sortieren, aber Sie wissen auch den Index wo Sie müssen die ID des Studenten eingeben –

Antwort

0

in die Funktion ein zweites Array übergeben. Tausche Elemente in Array2 gleichzeitig mit dem Tauschen von Elementen in Array1.

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;  
     } 
    } 
    } 
} 
Verwandte Themen