S
SeppJ schrieb:
eMaNu3L schrieb:
1. Wie soll ich das verwenden können und vor allem jetzt in diesem Code
Indem du dein Programm noch einmal neu planst unter Berücksichtigung, dass du diese Funktionen benutzen kannst.
und vor allem, indem du versuchst, so weit wie möglich zu verhindern, den gleichen Code mehrmals zu schreiben. Ich hab dir für deine Monaten-EIngabe bereits einen sehr kompakten Code gegeben, der nicht schwer zu verstehen ist, wenn man sich 5 Minuten dafür nimmt. Wenn du etwas dran nicht verstehst, dann frag.
Das Problem mit dem mehrfachen gelichen Zeilen führt früh oder später zu ungewollten Fehlern. Wenn du irgendwann merkst, dann du z.b. in den if-Anfragen einen Fehler hattest, dann musst du bei dir 12 Mal!!! ändern. Wenn die Zeilen sich nur wenig ändern, oder nur ein Parameter sich ändert, wie z.b. den Monatsnamen, dann lagere den Code in Fubktionen aus und ruft die Funktionen aus. So wie du jetzt programmierst, ist wie mit dem Auto gegen die Wand zu fahren. Und sag nicht nochmal "Ja, aber ich bin Anfänger", denn deshalb sag ich dir, damit du dir Gedanken machst. Der Fahrlerer lässt seinen Schüler/Schülerin nicht gegen die Wand fahren sondern schreitet ein, dasselbe mache ich.
Damit du den Thread nicht nochmal suchst, kopiere ich dir den Code
struct monat {
const char *name;
int max_days;
};
int main(void)
{
/* warum diese Variable global deklarieren????????? */
int Tag;
int Jahr;
int Monat;
char Nochmal = ' ';
struct monat m_db[] = {
{"Januar", 31},
{"Februar", 29},
{"März", 31},
// ... den rest kannst du selber schreiben
};
...
printf("Geben Sie das Jahr ein (Bsp: 1994): ");
scanf("%d", &Jahr);
printf("\nGeben Sie den Monat ein (Bsp: Fuer Januar = 1): ");
scanf("%d", &Monat);
printf("\nGeben Sie nun noch den Tag ein: ");
scanf("%d", &Tag);
if(Monat < 1 || Monat > 12 || Tag < 1 || Tag > m_db[Monat-1].max_days)
printf("\nUngueltige Angabe!\n");
else {
printf("-------------------------------------------------");
printf("\nDas erste Geburtsdatum ist der %d %s %d\n\n", Tag, m_db[Monat-1].name, Jahr);
printf("-------------------------------------------------");
}
...
return 0;
}
Hör auf mit deinen alten Programm weiter zu entwickeln, das wird zu nichts führen.