Anfänger



  • Hallo,
    ich bin C++ Anfänger und habe ein kleines Problem bei einer Aufgabe.
    Die Aufgabe ist:
    Lass den "Benutzer" entscheiden, wie oft die Münze geworfen werden soll, gib anschließend aus, wie oft jede Münzseite oben gelegen ist!(for-Schleife!)

    Bsp:

    Wie oft soll die Münze geworfen werden: 55

    Kopf Kopf Zahl Kopf Zahl Zahl Zahl Zahl Kopf Zahl
    Kopf Zahl Zahl Zahl Zahl Kopf Zahl Zahl Zahl Zahl
    Kopf Zahl Zahl Zahl Zahl Kopf Zahl Zahl Zahl Zahl
    Zahl Zahl Zahl Zahl Zahl Kopf Zahl Zahl Zahl Zahl
    Zahl Zahl Zahl Zahl Zahl

    Kopf-Ergebnisse: 9
    Zahl-Ergebnisse: 46

    bisher habe ich nur das geschaft:

    #include <iostream>
    #include <stdlib.h>
    #include <time.h>
    #include <stdio.h>
    
    using namespace std;
    int main()
    {
        srand(time(0));
    
        for ( int i=1; i<=100; i++ )
        {
            if ( rand() % 2 == 0 )
                cout<<"Kopf ";
            else
                cout<<"Zahl ";
    
            if ( i % 10 == 0 )
                cout<<"\n";
        }
    }
    

    Jetzt weiß ich nicht, wie ich den Benutzer das eigeben lassen soll
    ich bitte um Hilfe,
    Danke im vorraus



  • Stichwort: std::cin



  • darf ich noch nicht verwenden 😞


  • Mod

    Niko.SI schrieb:

    darf ich noch nicht verwenden 😞

    Das glaube ich dir nicht. Beziehungsweise: du magst glauben, dass du das nicht benutzen darfst, aber da liegst du garantiert falsch.

    Andere Möglichkeit wäre Kommandozeilenoption, aber das ist viel komplizierter.



  • ich meine das std::cin darf ich nicht, das normale cin schon, aber ich rätsle schon sehr lange, wie ich das machen kann



  • Niko.SI schrieb:

    ich meine das std::cin darf ich nicht, das normale cin schon, aber ich rätsle schon sehr lange, wie ich das machen kann

    😕



  • Niko, es gibt nur ein cin, und das gehört dem Namensraum std an, daher auch die Schreibweise std::cin. Im Internet findet man zahlreiche Anwendungsbeispiele.



  • was ist jetzt der unterschied ob ich cin oder std::cin schreib?



  • Niko.SI schrieb:

    was ist jetzt der unterschied ob ich cin oder std::cin schreib?

    Es gibt keinen. Es ist nur nicht üblich den std:: Namensraum immer aufzulösen (using namespace std; macht das), wenn man das nicht machen würde, müsste man std:: davor schreiben.



  • achso, danke



  • ok, aber jetzt habe ich immer noch das Problem mit den Versuchen. Könnt ihr da helfen?


  • Mod

    Niko.SI schrieb:

    ok, aber jetzt habe ich immer noch das Problem mit den Versuchen. Könnt ihr da helfen?

    Welches Problem? Du hast bisher nur was zur Benutzereingabe gefragt, das wurde gelöst. Stell präzise Fragen! Wir können nicht in deinen Kopf gucken.



  • ich habe euch ja ganz am anfang die fragestellung gezeigt:
    "Lass den "Benutzer" entscheiden, wie oft die Münze geworfen werden soll, gib anschließend aus, wie oft jede Münzseite oben gelegen ist!"

    jetzt weiß ich nicht, wie ich die die versuche programmieren soll.



  • Niko.SI schrieb:

    jetzt weiß ich nicht, wie ich die die versuche programmieren soll.

    😮
    Das ist doch genau so, wie im realen Leben. Du denkst dir einen Zähler für "Kopf" aus und für "Zahl". Wenn das Eine oder Andere oben liegt, addierst du zu dem jeweiligen Zähler 1 dazu, oder etwa nicht?



  • #include <iostream>
    #include <cstdlib>
    #include <ctime>
    
    using namespace std;
    
    int main()
    {
        srand(time(0));
    
    	int gesamt, kopf = 0;
    
    	std::cout << "Anzahl: ";
    	std::cin >> gesamt;
    
        for ( int i=1; i<=gesamt; i++ )
        {
            if ( rand() % 2 == 0 )
    		{
                cout<<"Kopf ";
    			++kopf;
    		}
    		else
    		{
                cout<<"Zahl ";
    		}
    
            if ( i % 10 == 0 )
                cout<<"\n";
        }
    
    	std::cout << "\n--- Gesamt " << gesamt << " ---" << std::endl;
    	std::cout << "  Kopf: " << kopf << std::endl;
    	std::cout << "  Zahl: " << gesamt - kopf << std::endl;
    
    	return 0;
    }
    


  • eine frage habe ich noch: was mache ich beim printf falsch? ist es die variable c?

    #include <iostream>
    #include <stdlib.h>
    #include <time.h>
    #include <stdio.h>
    
    using namespace std;
    int main()
    {
        int x,zaehler1,zaehler2;
        srand(time(NULL));
        cout<<"Wie oft soll die Muenze geworfen werden?: ";
        cin>>x;
        for ( int i=1; i<=x; i++ )
        {
            if ( rand() % 2 == 0 )
                {
                    zaehler1=zaehler1+1;
                    cout<<"Kopf ";
                }
            else
                {
                    zaehler2=zaehler2+1;
                    cout<<"Zahl ";
                }
            if ( i % 10 == 0 )
                cout<<"\n";
        }
        printf("Es wurde %c mal Kopf gewuerfelt \n", zaehler1);
        printf("Es wurde %c mal Zahl gewuerfelt", zaehler2);
    
    }
    


  • Du verwendest es. 😉



  • wie verwende ich es richtig? 🙂


  • Mod

    Niko.SI schrieb:

    wie verwende ich es richtig? 🙂

    Gar nicht. printf hast du in deinem Kurs bestimmt nicht (bzw. man sollte lieber sagen "hoffentlich nicht") gelernt. Code aus dem Internet zusammenklicken ist nicht programmieren.



  • wir haben printf einmal kurz durchgemacht.


Anmelden zum Antworten