funktioniert aber hat keine Eingabeüberprüfung

This commit is contained in:
Fourian Sucipto 2025-04-28 23:58:07 +02:00
parent 954104e5f0
commit aace8845a8

77
jahrtag.c Normal file
View File

@ -0,0 +1,77 @@
#include <stdio.h>
void textAusgabe() {
printf("0 Ende\n"
"1 Tagesnummer zu einem Datum bestimmen\n"
"2 Datum zu einer Tagesnummer bestimmen\n");
}
void eingabeDatum(int *tag, int *monat, int *jahr) {
printf("Gib dein Datum (tt.mm.jjjj) ein: ");
scanf("%d.%d.%d", tag, monat, jahr);
}
void eingabeTag(int *tag, int *jahr) {
printf("Gib Tagesnummer und Jahr (nr,jahr) ein: ");
scanf("%d,%d", tag, jahr);
}
int eingabeWahl() {
int input;
printf("Deine Wahl: ");
scanf("%d", &input);
return input;
}
int istSchaltjahr(int jahr) {
return (jahr % 4 == 0 && (jahr % 100 != 0 || jahr % 400 == 0));
}
int main() {
int input, tag, monat, jahr, TagImJahr,schalt;
int monat_tage[2][13] = {
{ 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
};
input = 1;
do{
textAusgabe();
input = eingabeWahl();
switch(input) {
case 0:
printf("Programm beendet.\n");
break;
case 1:
eingabeDatum(&tag, &monat, &jahr);
schalt = istSchaltjahr(jahr);
TagImJahr = 0;
for(int i = 1;i<monat;i++) {
TagImJahr += monat_tage[schalt] [i];
}
TagImJahr += tag;
printf("%d.%d.%d = %d. Tag im Jahr\n", tag, monat, jahr, TagImJahr);
break;
case 2:
int i = 1;
eingabeTag(&TagImJahr, &jahr);
schalt = istSchaltjahr(jahr);
tag = TagImJahr;
while (tag > monat_tage[schalt][i]) {
tag -= monat_tage[schalt][i];
i++;
}
monat = i;
printf(".... %d. Tag im Jahr = %d.%d.%d\n", TagImJahr, tag, monat, jahr);
}
} while (input != 0);
return 0;
}