Aufgabe 4:
Schreiben Sie ein Programm, welches eine Struktur person deklariert (firstname, name, birthday). Definieren Sie in main() ein Array mit 3 Elementen dieses Typs. Schreiben Sie nun eine Funktion, welche als Übergabeparameter einen Zeiger auf eine Struktur person erhält. In dieser Funktion sollen die Elemente der übergebenen Struktur beschrieben werden (scanf). In einer weiteren Funktion sollen alle Elemente einer Struktur person ausgegeben werden (printf). Realisieren Sie dieses Programm so, dass alle drei Elemente des Arrays beschrieben und ausgegeben werden.
Pointer/Array/Übergabeparameter
Pointer/Array/Übergabeparameter
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Re: Pointer/Array/Übergabeparameter
Ich verstehe meinen Fehler noch nicht ganz? Und brauche Hilfe um das Progamm zu Ende zu bringen. Danke für eure Hilfe
mfg
mfg
- cloidnerux
- Moderator
- Beiträge: 3125
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Pointer/Array/Übergabeparameter
Hi und Willkommen im Forum
Den Code kann ich nicht testen, denn du hast nur ein Screenshot und nicht den Code angehangen.
Wenn es darum geht, warum dein Programm nicht Compiliert, schau dir deine Funktionsdeklarationen an.

Ich verstehe deinen Fehler auch nicht, Hauptsächlich weil du uns nicht Mitteilst, was denn nun falsch sein sollte.Ich verstehe meinen Fehler noch nicht ganz? Und brauche Hilfe um das Progamm zu Ende zu bringen. Danke für eure Hilfe
Den Code kann ich nicht testen, denn du hast nur ein Screenshot und nicht den Code angehangen.
Wenn es darum geht, warum dein Programm nicht Compiliert, schau dir deine Funktionsdeklarationen an.
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Pointer/Array/Übergabeparameter
Sagen wir mal so... ich verstehe, dass das Programm vermutlich nicht tut, was Du möchtest - aber dafür wäre es gut zu wissen, was Du eigentlich tun möchtest.mck90 hat geschrieben:Ich verstehe meinen Fehler noch nicht ganz? Und brauche Hilfe um das Progamm zu Ende zu bringen. Danke für eure Hilfe
f1 ist jetzt auch nicht sonderlich aussagekräftig
Bei scanf musst Du die Adresse angeben, wohin die Daten geschrieben werden sollen. Also an die Adresse der Variablen.
Bei printf gibst Du eine 15 an... warum?
Dokumentiere mal, was Du wo eigentlich tun möchtest.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Pointer/Array/Übergabeparameter
Also eig möchte Ich genau das tun was mir in der Aufgabe vorgeschrieben wurde.
Die Größen 15;15;11 sind variabel von mir vergeben.
Die Größen 15;15;11 sind variabel von mir vergeben.
Code: Alles auswählen
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
struct person
{
char firstname[15];
char name[15];
char birthday[11];
};
void f1(struct person *pPerson);
void f2(struct person * pPerson);
main()
{
int i;
struct person people[3];
for (i = 0; i < 3; i++)
{
f1(&people[0]);
f2(&people[0]);
};
}
void f1(struct person*pPerson)
{
scanf("%s", pPerson->firstname);
scanf("%s", pPerson->name);
scanf("%s", pPerson->birthday);
}
void f2(struct person*pPerson)
{
printf("%s\n", pPerson->firstname);
printf("%s\n", pPerson->name);
printf("%s\n", pPerson->birthday);
}
Re: Pointer/Array/Übergabeparameter
Das Programm funktioniert soweit, sobald man aber einen zu langen namen eingibt spuckt er folgendes aus:
z.B
Eingabe:
Maxseinnameisteinfachvielzulang
Mustermann
01.01.2002
Ausgabe
MaxseinnameisteMustermann
Mustermann
01.01.2002
Das der firstname nach den 15 Buchstaben abgeschnitten wurde stört mich nicht, da aber in der erste Zeile Mustermann mit ausgespuckt wird, ist das doch der Beweis dass ich nicht auf das array zeige. Wenn man das so sagen kann.
Klar ich könnte die [15] erhöhen, dass will ich aber nicht. Es soll einfach den Teil des firstnamens "abschneiden" der zu lang ist und dann mit der nächsten Zeile (name) weiter machen.
Villeich hab ich auch was grundlegendes Falsch gemacht.
z.B
Eingabe:
Maxseinnameisteinfachvielzulang
Mustermann
01.01.2002
Ausgabe
MaxseinnameisteMustermann
Mustermann
01.01.2002
Das der firstname nach den 15 Buchstaben abgeschnitten wurde stört mich nicht, da aber in der erste Zeile Mustermann mit ausgespuckt wird, ist das doch der Beweis dass ich nicht auf das array zeige. Wenn man das so sagen kann.
Klar ich könnte die [15] erhöhen, dass will ich aber nicht. Es soll einfach den Teil des firstnamens "abschneiden" der zu lang ist und dann mit der nächsten Zeile (name) weiter machen.
Villeich hab ich auch was grundlegendes Falsch gemacht.
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Pointer/Array/Übergabeparameter
Du hast scanf benutzt. ^^mck90 hat geschrieben:Das der firstname nach den 15 Buchstaben abgeschnitten wurde stört mich nicht, da aber in der erste Zeile Mustermann mit ausgespuckt wird, ist das doch der Beweis dass ich nicht auf das array zeige. Wenn man das so sagen kann.
Klar ich könnte die [15] erhöhen, dass will ich aber nicht. Es soll einfach den Teil des firstnamens "abschneiden" der zu lang ist und dann mit der nächsten Zeile (name) weiter machen.
Villeich hab ich auch was grundlegendes Falsch gemacht.
Gib mal zuerst den Nachnamen ein, dann den überlangen Vornamen.
scanf ist gefährlich, weil es eben nicht fragt, wie lange das Array ist.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.