Hi all.
Ich bin neu in der Welt der C++ Prgrammierung.
Bin gerade dabei die Struktur von C++ zu erlernen.
Ich arbeite das Buch "C++ programmieren lernen", vom Addison Wesley
Verlag durch.
Ich denke, das ich das Buch gut verstehe.
Mein "Hänger" liegt eher nicht am Verständnis der Prgrammierung, sondern
am Ansatz einer Lösung für folgendes Problem.
Im Buch ist ein Übung:
Es soll ermittelt werden, wie oft "Freitag der 13te" in einem Jahr
vorkommen kann.
Die Übung soll nur mit den, bisher bekannten, Schleifenkontrukten (for
und while) bzw. case-Anweisung erfolgen.
Ich möchte bewußt die Übung ohne eine "case-Anweisung" lösen.
Real kommt "Freitag der 13te mindestens 1-mal maximal 3-mal im Jahr vor)
Mit meinem Code hätten wir diesen Tag wohl jeden Monat. :(
Wo und wie kann ich den Code ändern, dass der Monat (tag_monat) nicht
immer bei Montag(tag_woche) beginnt.
Danke für eure Hilfe
1 | #include <iostream>
|
2 |
|
3 | using namespace std;
|
4 |
|
5 |
|
6 |
|
7 | int main()
|
8 | {
|
9 | int tag_woche, tag_monat, freitag_13=0;
|
10 |
|
11 |
|
12 | for(int monat=1;monat<=12;monat++)
|
13 | {
|
14 |
|
15 | for(tag_monat=1; tag_monat<=31;tag_monat++)
|
16 | {
|
17 | for(tag_woche=1;tag_woche<=7;tag_woche++)
|
18 | {
|
19 | if(tag_woche==5)
|
20 | {
|
21 | if(tag_monat==13)
|
22 | {
|
23 | freitag_13+=1;
|
24 | }
|
25 | }
|
26 | cout << "tag_woche = " << tag_woche << endl;
|
27 |
|
28 | }
|
29 | cout << "tag_monat = " << tag_monat << endl;
|
30 | }
|
31 | cout << "Freitag der 13te = " << freitag_13 << endl;
|
32 | }
|
33 |
|
34 | return 0;
|
35 | }
|