| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: C Sekunden in Zeit angeben im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo, ich hab hier eine folgende aufgabe Zitat: Ein Programm soll einen eingelesenen ganzzahligen, nichtnegativen Sekundenbetrag in die Darstellung ...
![]() |
| | #1 (permalink) | |
| Registriert seit: 18.04.04 ![]() Likes: 0 | Anzeige Hallo, ich hab hier eine folgende aufgabe Zitat:
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. =) | |
| | |
| | #2 (permalink) |
| Senior Member Registriert seit: 10.03.07 ![]() Likes: 19 | Du solltest dir mal den Modulo-Operator ansehen. Damit löst sich das ganze wesentlich geschickter und eleganter. |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Senior Member Registriert seit: 27.06.04 ![]() Likes: 0 | Code: 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);} |
| | |
| | #4 (permalink) |
| Moderator ![]() | und weil lookshe die infokanone ist :tongue:: tage = sekunden / 86400 stunden = rest / 3600 minuten = rest / 60 sekunden = rest beispiel 123456: 123456 / 86400 = 1 rest 37056 37056 / 3600 = 10 rest 1056 1056 / 60 = 17 rest 36 also 1 tag, 10 stunden, 17 minuten und 36 sekunden. und das macht man halt mit modulo. |
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 18.04.04 ![]() Likes: 0 | heyy danke, dass hat mir wirklich geholfen. Oh man bin ich blöd! Ja mit dem Modulo wäre es natürlich geschickter, aber ich muss zurzeit Schleifen lernen. Deswegen habe ich mir dieses Konzept überlegt. Aber danke vielmals!! |
| | |
| | #6 (permalink) |
| Registriert seit: 17.11.08 ![]() Likes: 0 | Hallo Leute, bin neu hier im Forum und bin fleißig am Bücher lesen und coden Da bin ich auf diesen Thread gestoßen und dachte ich veröffentliche mal grade meine Lösung(C++). Code: // Zeitumrechnung.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
#include <stdafx.h>
#include <iostream>
#include <conio.h>
using namespace std;
class Zeitumrechnung
{
public:
void zeitrechner(int sekunden)
{
int wochen=0, tage=0, stunden=0, minuten=0;
//60 sek = 1 min; 3600 sek = 1 h; 86400 sek = 1Tag; 604800sek = 1 Woche
if(sekunden >= 604800)
{
wochen=sekunden/604800;
sekunden=sekunden%604800;
}
if(sekunden >= 86400)
{
tage=sekunden/86400;
sekunden=sekunden%86400;
}
if(sekunden >= 3600)
{
stunden=sekunden/3600;
sekunden=sekunden%3600;
}
if(sekunden >= 60)
{
minuten=sekunden/60;
sekunden=sekunden%60;
}
if(wochen == 1)
cout << wochen << " Woche ";
else
cout << wochen << " Wochen ";
if(tage == 1)
cout << tage << " Tag ";
else
cout << tage << " Tage ";
if(stunden == 1)
cout << stunden << " Stunde ";
else
cout << stunden << " Stunden ";
if(minuten == 1)
cout << minuten << " Minute ";
else
cout << minuten << " Minuten ";
if(sekunden == 1)
cout << sekunden << " Sekunde ";
else
cout << sekunden << " Sekunden ";
}
};
int main(void)
{
int sekunden=0,again;
cout << "Geben Sie eine Zeit in Sekunden ein: ";
cin >> sekunden;
Zeitumrechnung z1;
z1.zeitrechner(sekunden);
do
{
cout << "nNoch eine Berechnung?(ja=1,nein=0)";
cin >> again;
if(again == 1)
{
cout << "nGeben Sie eine Zeit in Sekunden ein: ";
cin >> sekunden;
Zeitumrechnung z1;
z1.zeitrechner(sekunden);
}
}
while(again!=0);
} MFG Shorty |
| | |
| | #7 (permalink) | |
| Registriert seit: 22.10.05 ![]() Likes: 3 | Zitat:
Code: for(; std > 24;) Code: while(str > 24) | |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Bevorzugtes Lesedevice für Raid 1 angeben | treo | Linux/UNIX | 2 | 15.08.07 19:49 |
| Ip Adressen in C++ Angeben | D31~$0u1 | Code Kitchen | 5 | 26.04.07 22:34 |
| C++ Pfadnamen in einer anderen Datei angeben. | D31~$0u1 | Code Kitchen | 4 | 24.04.07 20:53 |
| [C++] Sekunden zu Sekunden+Minuten+Stunden? | Avenger | Code Kitchen | 3 | 19.12.06 17:36 |
| PHP: Zeit mit Sekunden? | mido | (Web-) Design und webbasierte Sprachen | 4 | 06.02.02 22:25 |