Zum Inhalt springen
Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

C-Kurs/BubbleSortDebug: Unterschied zwischen den Versionen

Aus FreitagsrundenWiki
Aeichner (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „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...“
 
PaulG (Diskussion | Beiträge)
K verschob „Ckurs/BubbleSortDebug“ nach „C-Kurs/BubbleSortDebug“
 
(4 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
<pre>
<pre>
#include <stdio.h>
#include <stdio.h>
typedef struct
typedef struct
{
{
  char *data;
  char *data;
  int key;
  int key;
} item;
} item;


item array[] =
item array[] = {
{
  {"bill", 3},
    {"bill", 3},
  {"neil", 4},
    {"neil", 4},
  {"john", 2},
    {"john", 2},
  {"rick", 5},
    {"rick", 5},
  {"alex", 1},
    {"alex", 1},
};
};
void sort(item *paItems, unsigned int cItems) {
  int i = 0, j = 0;
  int s = 1;


void sort(item *paItems, unsigned cItems)
  for (i = 0; i < cItems && s != 0; i++) {
{
    s = 0;
    int i = 0, j = 0;
    for (j = 0; j < cItems; j++){
    int s = 1;
      if (paItems[j].key > paItems[j+1].key) {
 
        item Temp = paItems[j];
    for (i = 0; i < cItems && s != 0; i++)
        paItems[j] = paItems[j+1];
    {
        paItems[j+1] = Temp;
        s = 0;
        s++;
        for (j = 0; j < cItems; j++)
      }
        {
    }
            if (paItems[j].key > paItems[j+1].key)
    cItems--;
            {
  }
                item Temp = paItems[j];
                paItems[j] = paItems[j+1];
                paItems[j+1] = Temp;
                s++;
            }
        }
        cItems--;
    }
}
}


int main(void)
int main(void) {
{
  int i = 0;
    int i = 0;
  sort(array, 5);
 
  for (i = 0; i < 5; i++) {
    sort(array, 5);
     printf("array[%d] == {%s, %d}\n", i, array[i].data, array[i].key);
    for (i = 0; i < 5; i++)
  }
     {
        printf("array[%d] == {%s, %d}\n",
              i, array[i].data, array[i].key);
    }
}
}
</pre>
</pre>

Aktuelle Version vom 5. März 2013, 17:37 Uhr

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);
  }
}