Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
07.12.09, 17:38
|
#1
|
Anfänger
Registriert seit: Feb 2009
Beiträge: 19
Bedankt: 0
|
C programm Array
hallo, ich soll ein c-programm schreiben, das eine unbekannte anzahl von integer zahlen ca 10 einliest. zuerst unsortiert folge anschliessend die folge nach jedem vergleichsdurchgang bis zur sortierten folge.
ich weiss garnicht wie anfangen soll.... kann mir da einer weiter helfen.
danke
|
|
|
07.12.09, 18:48
|
#2
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
hier mal ne kaum dokumentierte lösung. die hilft nicht wirklich, aber gibt dir vielleicht eine idee...
Code:
# include <stdio.h>
# include <stdlib.h>
# define MAX_INPUT_SIZE 100
void array_ausgabe (int* a, int size) {
int i;
for (i = 0; i < size; i++) {
printf ("array[%d] == %d\n", i, a[i]);
}
} // array_ausgabe()
// oh scheisse _const void *_ was mag das wohl sein ;)
// aber du sollst ja wahrscheinlich eh deine eigene sortierfunktion schreiben...
int mycomp (const void *a, const void *b) {
return (*(int*) a) - (*(int*) b);
} // comp
int main(int ac, char **av)
{
int array[MAX_INPUT_SIZE];
int array_index = 0;
printf ("gib zahlen ein, ende bei -1\n");
int input = 0;
while (array_index < MAX_INPUT_SIZE && input != -1) {
printf ("> ");
scanf ("%d", &input);
if (input != -1) {
array[array_index++] = input;
}
}
if (array_index == MAX_INPUT_SIZE) {
printf ("mehr als %d zahlen darfst du nicht eingeben!\n", MAX_INPUT_SIZE);
}
printf ("array unsortiert:\n");
array_ausgabe(array, array_index);
printf ("array sortiert:\n");
// hier statt qsort _deine_ sortierfunktion.
// google mal nach bubblesort ...
qsort (array, array_index, sizeof (int), mycomp);
array_ausgabe(array, array_index);
return 0;
}
__________________
entropie erfordert keine wartung
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:18 Uhr.
().
|