[GELÖST]if und else - Wie richtig verzweigen



  • Tzzzz... bei dieser Verzweigung könnte ich gerade Verzweifeln...

    Es funktioniert soweit alles, bis auf die Verzweigung bezüglich "anzVersuche":

    Wenn ich z.B. die Zahl "3" eingebe, erscheint dennoch:
    "Sie haben zu viele Versuche gewaehlt"

    Ich habe schon dutzende Möglichkeiten probiert, hier mein letzter Versuch:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    main() {
    
    	int zahl, tipp, versuche = 0, anzVersuche;
    
    	srand(time(NULL));
    	zahl = rand() % 100 + 1; //Zahlen 1 bis 100
    	zahl = 90;
    	printf("\nZ U F A L L S Z A H L E N G E N E R A T O R\n");
    	printf("\nWieviele Versuche moechten Sie haben? (max 10)");
    	scanf("%i", &anzVersuche);
    
    	if (anzVersuche <= 10)
    		printf("\nSie haben %i Versuche gewaehlt.", anzVersuche);
    	else
    		//anzVersuche = 10;
    	printf("\nSie haben zu viele Versuche gewaehlt");
    	printf("\nWir haben deshalb die Anzahl d. Versuche auf 10 gesetzt");
    	do {
    		printf("\nWelche Zahl ist es? Geben Sie ihren Tipp ab (bis 100): ");
    		scanf("%i", &tipp);
    		printf("\nSie haben auf die %i getippt.\n", tipp);
    
    		if (tipp == zahl)
    			printf("\nSuper! Sie haben die Zahl erraten...\n");
    		if (tipp < zahl)
    			printf("\nSchade! Ihre Zahl ist zu klein...\n");
    		if (tipp > zahl)
    			printf("\nSchade! Ihre Zahl ist zu klein...\n");
    
    		versuche++;
    	} while (tipp != zahl && versuche < anzVersuche);
    	//printf("\n");
    
    	printf("\nDie Loesungszahl lautete: %i\n", zahl);
    	printf("\nSie haben %i Versuch(e) benoetigt.", versuche);
    }
    

    Wem es noch nicht entgangen ist - gemäß meinen letzten Fragen bin ich noch blutiger Anfänger...und werde es wohl noch eine ganze Weile bleiben 😕



  • if (tipp == zahl) 
        printf("\nSuper! Sie haben die Zahl erraten...\n"); 
      else
      {
        if (tipp < zahl) 
          printf("\nSchade! Ihre Zahl ist zu klein...\n"); 
        else
          printf("\nSchade! Ihre Zahl ist zu groß(!)...\n");
        ++versuche;
      }
    

    Erkenntnisse aus dem vorigen Thread: Du hast Abitur, bist also mit Wissensaneignung vertraut. Warum schnappst du dir kein Anfängerbuch, wie es die Programmierlernwilligen (welcher Sprache auch immer) seit jeher machen 😕
    printf wäre in obigen Fällen auch durch puts zu ersetzen.



  • Oh, ich habe nur auf den Schleifenkörper geachtet :p

    scanf("%i", &anzVersuche);
    
        if (anzVersuche <= 10)
            printf("\nSie haben %i Versuche gewaehlt.", anzVersuche);
        else
        {   
            anzVersuche = 10;
            printf("\nSie haben zu viele Versuche gewaehlt");
        }
    


  • Hinter einem if, else while, for ... wird immer nur eine Anweisung ausgeführt. Wenn du mehr möchtest, musst du diese mit Hilfe der { } zu einem Block zusammen fassen.



  • DirkB schrieb:

    Hinter einem if, else while, for ... wird immer nur eine Anweisung ausgeführt. Wenn du mehr möchtest, musst du diese mit Hilfe der { } zu einem Block zusammen fassen.

    Lieber zwei Klammern zuviel als eine zuwenig.



  • Danke! Die {} hat gefehlt... naja da helfen auch Bücher nichts mehr :-)! Lese gerade den "Erlenkötter"

    Hehe... "hmmh" "gross" habe ich auch gleich noch geändert...



  • cStarter12 schrieb:

    Hehe... "hmmh" "gross" habe ich auch gleich noch geändert...

    Und wieso?

    Nicht jedes 'ß' wurde mit Einführung der neuen deutschen Rechtschreibung zu einem "ss" gewandelt.
    Insbesondere nach lang gesprochenen Vokalen und den sogenannten Diphtongs bleibt das 'ß' ein 'ß'.
    Schoß -> Schoß
    Schloß -> Schloss
    daß -> dass
    groß -> groß



  • Naja zum einen, weil ich versehentlich 2x "Schade! Ihre Zahl ist zu klein" geschrieben habe, auch wenn es "zu groß" ist und zum Anderen:

    Klar wird es gro"ß" geschrieben - ich bin der Meinung gewesen, dass es besser ist keine Sonderzeichen zu verwenden - auch nicht in der Ausgabe.



  • wäre eine prima Gelegenheit gewesen, Dich mit Codepages und Keytables auseinanderzusetzen, wenn Deine Konsole kein scharfes S kann 🙂



  • cStarter12 schrieb:

    Lese gerade den "Erlenkötter"

    Welches genau? Ich habe mal ein "C++-Buch" von Erlenkötter gelesen. Das war im Nachhinein ein Witz. Mehr eine Morgenzeitung als ein ausgewachsenes Buch, viel C-Style, und es fehlten einfach viele Standard-Sachen (bei dem Umfang auch kein Wunder). Du findest hier im Forum viele gute Buchempfehlungen (auch kostenlose E-Books).



  • _matze schrieb:

    Welches genau? Ich habe mal ein "C++-Buch" von Erlenkötter gelesen. Das war im Nachhinein ein Witz. Mehr eine Morgenzeitung als ein ausgewachsenes Buch, viel C-Style, und es fehlten einfach viele Standard-Sachen (bei dem Umfang auch kein Wunder). Du findest hier im Forum viele gute Buchempfehlungen (auch kostenlose E-Books).

    Buchtitel:
    C - Programmieren von Anfang an
    Taschenbuch mit etwas über 300 Seiten.

    Nebenher mache ich dann Aufgaben die ich mit Netz finde - so wie diese weiter oben.

    Für C++ (werde damit aber erst in ein paar Wochen beginnen) habe ich mir "Grundkurs C++" von J. Wolf gekauft (Galileo).

    Das mit den eBooks hier im Forum muss ich mir mal genauer anschauen - Danke für den Tipp 🙂

    Kannst du ein bestimmtes Buch / eBook empfehlen?



  • Sorry, hatte nicht bemerkt, dass wir hier im C-Forum sind. Insofern vergiss meine Meckereien zu Erlenkötters C++-Buch (sein C-Buch kenne ich nicht).

    Zum Thema J. Wolf:

    http://www.c-plusplus.net/forum/272350

    Am besten du verkaufst es wieder. 🙂

    Gute C++-Bücher sind beispielsweise Thinking in C++ (kostenlos im Netz zu finden) oder der C++-Primer (den habe ich selbst nicht gelesen, aber die Meinungen hier im Forum sind eindeutig). Du findest sicher noch mehr Empfehlungen, wenn du mal die Forensuche bemühst. 🙂

    http://mindview.net/Books/DownloadSites



  • Oha... - Danke für die Info - Interessant ist nur:
    http://www.c-plusplus.net/cms/modules.php?op=modload&name=mbBooks&file=index&func=isbn&isbn=3898423921

    😉

    Ich schaue mir das hier mal an: http://www.cppbuch.de/index.html

    Allerdings muss ich vorher noch einiges an "C" lernen... sonst gehe ich mit diesem Wälzer unter 😮 ...


  • Mod

    Heißer Tipp: Du solltest nicht davon ausgehen, dass C und C++ irgendeine Änhlichkeit hätten. Die Ähnlichkeit liegt nur in der Syntax (der Grammatik), die du sowieso lernst, wenn du eine der Sprachen lernst. Viele Leute gehen fälschlicherweise davon aus, dass ihnen C Kenntnisse in C++ nützen würden und umgekehrt. Dabei ist eher dass Gegenteil der Fall, zumindest wenn man neu anfängt, da man bloß durcheinander kommt. Wenn man in einer Sprache wirklich fit ist, kann man sich natürlich die andere angucken.



  • SeppJ schrieb:

    Heißer Tipp: Du solltest nicht davon ausgehen, dass C und C++ irgendeine Änhlichkeit hätten. Die Ähnlichkeit liegt nur in der Syntax (der Grammatik), die du sowieso lernst, wenn du eine der Sprachen lernst. Viele Leute gehen fälschlicherweise davon aus, dass ihnen C Kenntnisse in C++ nützen würden und umgekehrt. Dabei ist eher dass Gegenteil der Fall, zumindest wenn man neu anfängt, da man bloß durcheinander kommt. Wenn man in einer Sprache wirklich fit ist, kann man sich natürlich die andere angucken.

    Hi! Gute Info - bisher lautet es nämlich aus allen Ecken > "C++" ist wie "C" nur Objektorientiert.

    Ich habe jetzt mit "C" angefangen, da ich im Studium (Elektrotechnik) in ca. 2 Semestern mit C und C++ beginne - und da möchte ich schon etwas voraus sein...

    Ich denke ich werde mir wohl im Herbst das Buch "Der C++ Programmierer" zulegen und die Übungen durchgehen...auf jeden Fall kein Buch von J. Wolf 😉


  • Mod

    cStarter12 schrieb:

    Hi! Gute Info - bisher lautet es nämlich aus allen Ecken > "C++" ist wie "C" nur Objektorientiert.

    Denjenigen, der dir dies geraten hat, solltest du bezüglich Programmierung nie wieder nach Rat fragen.


Anmelden zum Antworten