Hallo . . . :=]
Aufgabe:
Das Programm soll so arbeiten, dass man beliebig viele Personen
einlesen bzw. ausgeben kann.(das geschieht durch Unterprogramme).
Dann muss man natuerlich Speicher dynamisch (mit malloc)
fuer ein Feld von Strukturen reservieren (und ihn) am Ende des
Programms wieder freigeben.
Die Unterprogramme funktionieren.
Das Problem:
Beispielsweise ist die Anzahl der Personen, die eingegeben werden 3.
Die erste Eingabe geht , dann die gehen die anderen zwei nicht.
Code:
Aufgabe:
Das Programm soll so arbeiten, dass man beliebig viele Personen
einlesen bzw. ausgeben kann.(das geschieht durch Unterprogramme).
Dann muss man natuerlich Speicher dynamisch (mit malloc)
fuer ein Feld von Strukturen reservieren (und ihn) am Ende des
Programms wieder freigeben.
Die Unterprogramme funktionieren.
Das Problem:
Beispielsweise ist die Anzahl der Personen, die eingegeben werden 3.
Die erste Eingabe geht , dann die gehen die anderen zwei nicht.
Code:
Code:
void Eingabe (struct Person *p1);
void Ausgabe (struct Person *p1);
int main (void){
int n;
int i;
struct Person *p1;
printf("Geben Sie eine Anzahl ein :"); scanf("%d", &n); getchar();
p1= (Person *) malloc (n * sizeof (Person));
i=1;
while ( i <= n){
Eingabe(&p1[0]);
i++;
}
i=1;
while (i <= n){
Ausgabe(&p1[0]);
i++;
}
getchar ();
return 0;
} // main
// -------------------------------------------------------------------------
void Eingabe ( struct Person *p1)
{
printf("Nachname: "); fgets(p1->Nachname,51, stdin);
printf("Vorname:");
fgets(p1->Vorname,101, stdin);
printf("PLZ=");
scanf("%d", &p1->PLZ); getchar();
printf("Ort: ");
fgets(p1->Ort,51,stdin);
printf("Gburtsjahr=");
scanf("%d\n",&p1->Geburtsjahr);
}
void Ausgabe (struct Person *p1)
{
printf("Sie gaben ein:\n");
printf("Nachname: %s\n", p1->Nachname);
printf("Vorname: %s\n", p1->Vorname);
printf("PLZ:%d\n", p1->PLZ);
printf("Ort:%s\n", p1->Ort);
printf("Gburtsjahr: %d\n",p1->Geburtsjahr);
}