Update main.c

deleteted crap-code and solution parts
This commit is contained in:
bazz 2022-02-18 18:03:26 +01:00 committed by GitHub Enterprise
parent 4f3a700605
commit 52686ad7e7
1 changed files with 24 additions and 99 deletions

View File

@ -1,117 +1,42 @@
/** /**
* P02 Praktikum * P02 Praktikum
* *
* - Funktionen * Das Programm liest einen Monat (1-12) und ein Jahr (1600-2400) ein und
* - Funktion Schaltjahr * gibt die Anzahl der Tage dieses Monats aus.
* - Funktion Tage pro Monat *
* - Funktion Wochentag * @author Gerrit Burkert, Adaptation bazz
* * @version 15-FEB-2013, 16-OCT-2017, 17-OCT-2019, 16-FEB-2022
* @author ZHAW
* @version 1.0 - 08.02.2022
*/ */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#define ERROR_IN_MONTH 1
#define ERROR_IN_YEAR 2
int leseZahl(char *prompt, int min, int max) { // Datentyp angeben, Parameter angeben ///// Student Code
char zahlString[11];
int zahl;
do {
printf("%s", prompt);
fgets(zahlString, 10, stdin);
zahl = atoi(zahlString); // bei ungueltiger Zahl return 0
} while ((zahl < min) || (zahl > max));
return zahl; // return Zeile angeben
}
/**
____ leseZahl(____) { // Datentyp angeben, Parameter angeben
char zahlString[11];
int zahl;
fgets(zahlString, 10, stdin);
zahl = atoi(zahlString); // bei ungueltiger Zahl return 0
___________________ // return Zeile angeben
}
*/
/* Konstante Werte fuer die Monate */ ///// END Student Code
enum { JAN=1, FEB, MAR, APR, MAI, JUN, JUL, AUG, SEP, OKT, NOV, DEZ };
int main (void) { int main (int argc, char *argv[]) {
//
// Variablen definieren
//
int monat, jahr; int monat, jahr;
char *prompt;
// Monat einlesen und Bereich ueberpruefen
int istSchaltjahr = 0; // 0: kein Schaltjahr, sonst Schaltjahr monat = gibIntWert("Monat", 1, 12);
int tageProMonat = 0; // Ergebnis spaeter in dieser Variablen jahr = gibIntWert("Jahr", 1600, 9999);
//
// Monat und Jahr einlesen
//
//printf("Monat: ");
//scanf("%d", &monat);
//printf("Jahr: ");
//scanf("%d", &jahr);
prompt = "Monat: ";
monat = leseZahl(prompt, 1, 12);
prompt = "Jahr: ";
jahr = leseZahl(prompt, 1, 3000);
// Ausgabe zum Test // Ausgabe zum Test
// printf("Monat: %d, Jahr: %d \n", monat, jahr); printf("Monat: %d, Jahr: %d \n", monat, jahr);
// Ausgabe zum Test (hier mit dem ternaeren Operator "?:")
printf("%d ist %s Schaltjahr\n", jahr, istSchaltjahr(jahr) ? "ein" : "kein");
// Ausgabe
// printf("Der Monat %02d-%d hat %d Tage.\n", monat, jahr, tageProMonat(jahr, monat));
// Monate mit 30 und 31 Tagen behandeln
// return 0;
switch (monat) {
case JAN: case MAR: case MAI: case JUL: case AUG: case OKT: case DEZ:
tageProMonat = 31;
break;
case APR: case JUN: case SEP: case NOV:
tageProMonat = 30;
break;
//
// Monat ist 2: Auf Schaltjahr ueberpruefen
//
case FEB:
if (jahr % 4 == 0 && (jahr % 100 != 0 || jahr % 400 == 0)) {
tageProMonat = 29;
}
else {
tageProMonat = 28;
}
break;
//
// Anderer Monat: Fehler
//
default:
printf("Der Monat muss zwischen 1 und 12 sein.\n");
return 1;
}
//
// Ergebnis ausgeben
//
printf("Der Monat %d.%d hat %d Tage.\n", monat, jahr, tageProMonat);
return 0;
} }