prob mit struktursortieren nach alphabet
-
hallo,
ich bräuchte mal bitte hilfe bei diesem programm...es soll eine geburtstagsliste sein, wo eine ungeordnete eingabe in eine datei erfolgt ist und sie nun geordnet nach dem und nachnamen alphabetisch ausgegeben werden soll.der sortieralgorithmus basiert auf dem bubblesort, aber er funktioniert nicht
die datei wird einfach nur wida ausgegeben - unsortiert- denke mal das es an der for schleife liegt ( mit dem blauen pfiel gekennzeichnet im code
) was muss da stehn?
bin für jeden tip dankbar!!!#include <stdio.h> #include <string.h> #include <stdlib.h> int n=1; int i,j,austausch; char dateiname[25]; char pdatum[11]; char *p1,*p2,*p3; struct datum{int tag;int monat;int jahr;}; struct person{char name[20]; char vorname[20]; char telefon[20];struct datum geburtsdatum;}; struct person freund[40]; struct person x[1]; FILE *datei; void lesen() { printf("Erstellen einer Geburtstagsliste\n"); printf("Bitte Dateinamen eingeben: "); scanf("%s",dateiname); datei=fopen(dateiname,"r"); if (datei==NULL) printf("Datei konnte nicht geöffnet werden\n"); else { system("cls"); printf("Hier sind ihre Daten:\n\n"); fread(&freund[n],sizeof(freund[n]),1,datei); while(!feof(datei)) { do { austausch=0; :arrow: for (n=1;n>=40;n++) if (strcmp(freund[n].name,freund[n+1].name)>0) { x[n]=freund[n+1]; freund[n+1]=freund[n]; freund[n]=x[n]; austausch=1; } } while (austausch==1); printf("%s\n",freund[n].name); printf("%s\n",freund[n].vorname); printf("%d.",freund[n].geburtsdatum.tag); printf("%d.",freund[n].geburtsdatum.monat); printf("%d\n",freund[n].geburtsdatum.jahr); printf("%s\n\n",freund[n].telefon); fread(&freund[n],sizeof(freund[n]),1,datei); } printf("\n\nDas wars!"); fclose(datei); } } void main () { int wahl; do { printf("Bitte entscheiden sie sich fuer eine Aktion"); printf("\n1.Geburtstagsliste erstellen\n2.Geburtstagsliste lesen\n3.Beenden\n"); scanf("%d",&wahl); if(wahl==1) schreiben(); if(wahl==2) lesen(); } while(wahl!=3); }
-
kann mir da wirklich keienr nen tip geben?
ich krieg da immer noch keine logik rein...bin am verzweifeln
wäre nett wenn sich das jemand mal kurz angucken könnte....DANKE!!
-
i = 0, i < 40, ++i
lies mal, besonders ueber arrays und den for-loop
http://www.pronix.de/pronix-4.html