Hallo, ich hab hier eine folgende aufgabe
Ich finde da einfach kein fehler, ich hab ganz genau mehrere male nach einem Fehler gesucht.
Am ende kommt da immer sowas heraus:
Wir haben 1 Woche, 1 Tag, 1:14:7 Stunde
was völlig falsch ist. Kann einer helfen?
Wäre sehr dankbar. =)
Ein Programm soll einen eingelesenen ganzzahligen, nichtnegativen Sekundenbetrag in die Darstellung Wochen, Tage,
Stunden, Minuten, Sekunden umwandeln und ausgeben. Beispiel: 6574548 s = 10 Wochen, 6 Tage, 2:15:48 Stunden. Die
Ausgaben ?Woche? bzw. ?Wochen? und ?Tag? bzw. ?Tage? sollen sprachlich korrekt erfolgen, also z.B. ?1 Tag?, aber
?3 Tage?. In einem Programmlauf soll mehr als ein Sekundenwert umgewandelt werden können. Überlegen Sie sich dazu
ein geeignetes Abbruchkriterium!
Code:
#include <stdio.h>
#include <math.h>
/*Kompiliert wird mit gcc -o NAME -lm NAME.c */
int main()
{
//initialisieren
int sek, min = 0, std = 0, tag = 0, woche = 0, i,j,k,l;
printf("Sekunden in Zeit\n");
printf("Geben sie die Sekdunden an: ");
scanf("%d",&sek);
fflush(stdin);
//Berechnung in der Schleife
for (i = 0; sek > 60; i++)
{
sek = sek - 60;
min = min + 1;
for (j = 0; min > 60; i++)
{
min = min - 60;
std = std + 1;
for (k = 0; std > 24; i++)
{
std = std - 24;
tag = tag + 1;
for (l = 0; tag > 7; i++)
{
tag = tag - 7;
woche = woche + 1;
}
}
}
}
if (woche = 1){printf("Wir haben %d Woche, ",woche);}
else {printf("Wir haben %d Wochen, ",woche);}
if (tag = 1){printf("%d Tag, ",tag);}
else {printf("%d Tage, ",tag);}
if (std = 1){printf("%d:%d:%d Stunde\n",std,min,sek);}
else {printf("%d:%d:%d Stunden\n",std,min,sek);}
printf("Programm zuende\n");
return 0;
}
Ich finde da einfach kein fehler, ich hab ganz genau mehrere male nach einem Fehler gesucht.
Am ende kommt da immer sowas heraus:
Wir haben 1 Woche, 1 Tag, 1:14:7 Stunde
was völlig falsch ist. Kann einer helfen?
Wäre sehr dankbar. =)