C-Kurs/BubbleSortDebug
< C-Kurs
Version vom 25. Juli 2010, 11:46 Uhr von Mutax (Diskussion | Beiträge) (hat „Ckurs2009/BubbleSortDebug“ nach „Ckurs/BubbleSortDebug“ verschoben: Aufgaben sind Kurs übergreifend nutzbar)
Das folgende Programm, welches ein Array von Elementen mit Hilfe von Bubblesort sortiert enthält verschiedene Bugs: Debugge es mit printf,assert und/oder gdb, so dass es wie gewünscht funktioniert:
#include <stdio.h> typedef struct { char *data; int key; } item; item array[] = { {"bill", 3}, {"neil", 4}, {"john", 2}, {"rick", 5}, {"alex", 1}, }; void sort(item *paItems, unsigned int cItems) { int i = 0, j = 0; int s = 1; for (i = 0; i < cItems && s != 0; i++) { s = 0; for (j = 0; j < cItems; j++){ if (paItems[j].key > paItems[j+1].key) { item Temp = paItems[j]; paItems[j] = paItems[j+1]; paItems[j+1] = Temp; s++; } } cItems--; } } int main(void) { int i = 0; sort(array, 5); for (i = 0; i < 5; i++) { printf("array[%d] == {%s, %d}\n", i, array[i].data, array[i].key); } }