Hy nochemal
und die Probz gehen weiter
ich versuch jetzt schon wieder ne ganze zeit ne sortierte ausgabe hinzubekommen aber ich weiß nicht wirklich wie.
Ich versuche mir die Ausgabe abhängig vom Alter ausgeben zu lassen, aber da ich vorher die Anzahl der structs nicht kenne brauche ich irgendwie eine unendliche Zahl pointer um das sortieren zu können. Sowohl wenn ich die structs sortieren lasse wenn sie alle eingegeben sind, als auch wenn ich direkt sortiere nach der Eingabe.
In einem anderen Forum bekam ich den Tip bubble sort.
Alllerdings find ich in meiner Literatur nichts dazu und im Netz ists alles recht kompliziert mit unterprogrammen usw erklärt.
Hätte da vielleicht noch jemand ein Tip für mich wie man sowas vom Prinzip macht?
Mein Prinzip so sortiert nur das erste mit dem zweiten struct nach alter.
danke
Ö
# include <stdio.h>
# include <stdlib.h>
struct person {char name[15]; int alter;struct person * folgendes;};
int main (void){
char hilf[1];
int x=0,y=0,z=0,q=0;
struct person *pstart=NULL, *phupf=NULL, *philf=NULL, *ptr=NULL;
pstart= (struct person *) malloc (sizeof (struct person));
phupf=pstart;
//Eingabe
scanf("%s",pstart->name);
scanf("%d",&pstart->alter);
for(;

{
if (q=1){printf("Noch eine Eingabe? (j) (n)\n");
scanf("%s",hilf);}
if(hilf[0]=='n')break;
phupf->folgendes=(struct person *)malloc (sizeof(struct person));
phupf=phupf->folgendes;
scanf("%s",phupf->name);
scanf("%d",&phupf->alter);
q=1
}
//Sortierung
philf=pstart;
x=philf->alter;
phupf=philf->folgendes;
y=phupf->alter;
if (x>y){
pstart=phupf;
phupf=pstart->folgendes;
philf->folgendes=phupf;
pstart->folgendes=philf;
}
// Ausgabe
printf("%s\n",pstart->name);
printf("%d\n",pstart->alter);
philf=pstart;
do{
philf=philf->folgendes;
printf("%s\n",philf->name);
printf("%d\n",philf->alter);
}while(philf!=phupf);
return 0;
}