Hallo Zusammen
Hier mal ein Quellcode zum jeweiligen Namen gehört eine Punktezahl, und
es soll aufsteigend sortiert werden. Es läuft soweit, allerdings erden
immer nur die Zahlen und nicht der Name ausgegeben...was mache ich
falsch ?
PS bin noch Anfänger:-)
int main()
{
int kai,uwe,heinz;
uwe=11;
heinz=4;
kai=21;
int array[3] = {kai,uwe,heinz};
int x;
for (int y=1; y<3; y++)
{
for(int z=0;z<3-1;z++)
{
if (array[z]>array[z+1])
{
x = array[z];
array[z]=array[z+1];
array[z+1] = x;
}
}
}
for(int y=0;y<3;y++)
printf("%i,",array[y]);
return 0;
}
Neuling schrieb:> Hallo Zusammen>> Hier mal ein Quellcode zum jeweiligen Namen gehört eine Punktezahl, und> es soll aufsteigend sortiert werden. Es läuft soweit, allerdings erden> immer nur die Zahlen und nicht der Name ausgegeben...was mache ich> falsch ?
Du hast vergessen, das C-Buch zu lesen.
Kurz nachholen und alles läuft!
Das funktioniert grundsätzlich so nicht.
kai,uwe,heinz sind in dem Code Variablen und keine Texte.
Das Array int array[3] = {kai,uwe,heinz}; enthält darum einfach die
Zahlen und keine Namen.
Genau genommen sieht dein Mikrocontroler die Begriffe "kai", "uwe" und
"heinz" nie weil der sogenannte Compiler der aus C, Maschinencode macht,
einfach die Werte verwendet, und keine von dir benannten Variablen.
In der Tat fehlen dir Grundlagen. Der Tipp mit den Structs ist nicht
schlecht. Du brauchst eine Datenstruktur in die du einerseits den Wert
abspeicherst aber ebenso den Namen des Wertes (als char* welches in C
Texte aufnehmen kann.).
Dadurch sind diese beiden Dinge untrennbar miteinander verbunden und
können bei Bedarf abgerufen werden.
N2 schrieb:> Oben dazu:> const char* name[] = {"Kai", "Uwe", "Heinz" };>> printf ändern:>> printf("%s: %i, ",name[y], array[y]);
Du hast aber gesehen, dass das Werte-Array umsortiert wurde? Mit diesem
Code werden die Namen aber nicht mit umsortiert.