Du bist nicht angemeldet.

Werbeanzeige

matzelarts

unregistriert

1

21.01.2009, 21:45

Listing 3.8 - Countdown -> anderer Vorschlag

Ein Benutzer gibt eine Zahl ein, welche automatisch herunter gezählt werden soll. Bei der Hälfte gibt es eine Meldung der aktuellen Zeit.

Beim zu schnellen lesen :D verstand ich die Aufgabe nun so, dass der Benutzer nur gerade Zahlen eingeben darf. Somit entstand eine Version mit "switch".

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
using namespace std;

int main(){
    int startzeit;
    int rundezahl;
    //eingabe

    cout <<"Bitte geben sie die Startzeit ein:"<<endl;
    cin >> startzeit;
    //gerade zahl überprüfen und berechnen

    rundezahl=startzeit%2;
    switch(rundezahl){
        //wenn 0 also gerade

        case(0):{
            //runterzählen

            for(int i=startzeit; i>0; i--){
                //aktuelle Zahl ausgeben

                cout <<i <<endl;
                //wenn hälfte erreicht bescheid geben

                if(i==startzeit/2+1){   
                    cout<<"Die Zeit ist zur Haelfte um!"<<endl;
                }
            }  
        }
        break;
        //wenn falsche eingabe

        default:{
            cout<<"Sie haben keine gerade Zahl eingegeben!" <<endl;
        }
    }
    //ende

    cout<<"Das Programm wird beendet." <<endl;
return 0;
}

2

21.01.2009, 22:13

Hi matzelarts,

Willkommen im Forum!

Was will denn der Künstler damit sagen?
Gibts ein Problem, oder wolltest du nur deine Variante vorstellen?
fka tm

matzelarts

unregistriert

3

21.01.2009, 22:18

Hallo TrikkieMikkie,

es soll nur eine Variante sein. ;)
Danke der Nachfrage.

4

21.01.2009, 22:23

Verstehe.
Ich sehe allerdings noch einige Möglichkeiten zur Optimierung.
Aber das überlasse ich deiner Fantasie. ;)
fka tm

5

21.01.2009, 22:34

ich bin ja noch nicht ein experte, deshalb stelle ich die frage mal in die runde:

switch und case ist ja schön und gut, aber wäre man bei diesem beispiel nicht besser beraten mit einer einfachen if-else bedingung? also soweit ich gesehen habe braucht es ja nur gerade zwei optionen

DasBlub

Alter Hase

Beiträge: 803

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

6

21.01.2009, 22:38

hier wäre if-else angebracht ;)

7

21.01.2009, 22:44

Oder "? :"
fka tm

Toa

Alter Hase

Beiträge: 952

Beruf: Research associate

  • Private Nachricht senden

8

21.01.2009, 22:49

Zitat von »"TrikkieMikkie"«

Oder "? :"


ternäre Operatoren ftw! Ist das eigentlich performaneter oder nur von der Syntax her kürzer?

9

21.01.2009, 22:51

Du immer mit deinen Fachausdrücken toa! :)

Ich weiß es nicht genau, bin infiziert von "Kürze des Codes". ;)
fka tm

10

21.01.2009, 23:50

Wie wärs mit ausprobieren?

*testen geh*

Werbeanzeige