Brauche dringend Hilfe bei einem C Programm!?

... komplette Frage anzeigen

1 Antwort

Mir fällt da so einiges auf. Das Witzigste vorab:

if(pruefeDatum(*t, *m, *j) == 1)
{
  return 1;
}
return 0;

Das kannst du abkürzen zu:

return pruefeDatum(*t, *m, *j);

_____________

In main übergibst du die Parameter von leseDatum als Adresse, obwohl in der Deklaration der Parameter keine Adresse erwartet wird.

In leseDatum übergibst du die Parameter mit Sternchen, obwohl in der Deklaration nur normale Datentypen stehen.

Also da hast du auf jeden Fall noch irgendwo ein Problem, allein schon weil du die Parameter nicht einheitlich übergibst.

Ich bin schon lange raus da, aber du solltest dich unbedingt einmal mit dem Thema Zeiger und Referenzen beschäftigen.

_____________

Deine Endlosschleife:

main → leseDatum → pruefeDatum → leseDatum → pruefeDatum → ...

leseDatum und pruefeDatum rufen sich permanent gegenseitig auf, ohne dass der Aufruf übersprungen werden kann.

_____________

Die Schaltjahrabfrage ist meiner Meinung nach falsch.

Der 2. Februar 2000 wird z. B. als falsch erkannt, da in den oberen if eingestiegen wird und in den zweiten auch (tag>=1 && tag<=28) und dann 0 zurück gegeben wird.

Im Februar würde ich 1-28 grundsätzlich zulassen und nur falls tag==29 ist, die komplizierte Schaltjahrsregelprüfung durchführen.

Schreib dir am besten noch eine Funktion istSchaltjahr.

_____________


Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?