Anfänger Problem ....



  • moin ich bins ma wieder .....

    So mein Problem ist ich will ein Programm schreiben mit hilfe einer for-schleife die die ersten hundert Quadratzahlen ausgibt . Nach jeder zehnten Qudratzahl soll das Programm anhalten und warten bis der Anwender die enter-taste drückt

    Soweit bin ich schon ...

    #include <iostream>
    using namespace std;
    
    int main()
    {
     int loop;
     int quadr;
    
     for(loop = 1; loop <= 100; ++loop)
        {
        quadr = loop * loop;
        cout << "Das Quadrat von " << loop << " ist " << quadr << endl;
        if (loop == 10)
           {
           cout << " Drücken sie eine taste um fortzufahren " << endl; 
           break;
           }
        }
        return 0;
    }
    

    bitte habt verständnis das ich noch Anfänger bin ,danke



  • #include <iostream>
    using namespace std;
    
    int main()
    {
     int loop;
     int quadr;
    
     for(loop = 1; loop <= 100; loop++)    
    //++loop heißt präincrement deutsch: zuvor
    //du setzt also loop auf 1 um dann mit 2 zu quadrieren ?!
    //wenns so sein soll ok, aber unnötig kompliziert 
        {
        quadr = loop * loop;
        cout << "Das Quadrat von " << loop << " ist " << quadr << endl;
        if ((loop %= 10) ==0)
    //nach jedem 10ten mal unterbrechen ? du unterbrichst nur beim 10ten mal
    // %: modulo -> zahl wird durch 10 dividiert und rest wird ausgegeben
           {
           cout << " Drücken sie eine taste um fortzufahren " << endl;
            getchar();
    //denke mit getchar(); sollte es funcen weiß aber nicht in welcher lib das ist
    //stdio.h,stdlib.h,.. irgend sowas
           break;
           }
        }
        return 0;
    }
    

    wofür brauchst du namespace ???
    ausgabe über printf wäre viel schöner und einfacher

    jo denke dann müssts klappen
    und musst dich nicht schämen weilst n anfänger bist 🙄



  • Hat leider ein paar Hasenfüße 😉

    oggs_the_progger schrieb:

    #include <iostream>
    using namespace std;
    
    int main()
    {
     int loop;
     int quadr;
     
     for(loop = 1; loop <= 100; loop++)    
    //++loop heißt präincrement deutsch: zuvor
    //du setzt also loop auf 1 um dann mit 2 zu quadrieren ?!
    //wenns so sein soll ok, aber unnötig kompliziert 
    
    // [LordJaxom] Hier ist ++loop und loop++ identisch, da das Ergebnis 
    // nicht ausgewertet wird, es geht hier nur darum loop irgendwie zu erhöhen
    
        {
        quadr = loop * loop;
        cout << "Das Quadrat von " << loop << " ist " << quadr << endl;
        if (loop % 10 ==0)
    //nach jedem 10ten mal unterbrechen ? du unterbrichst nur beim 10ten mal
    // %: modulo -> zahl wird durch 10 dividiert und rest wird ausgegeben
    
    // [LordJaxom] Und %= weist den Rest gleich noch der Variablen loop zu
    
           {
           cout << " Drücken sie eine taste um fortzufahren " << endl;
            getchar();
    //denke mit getchar(); sollte es funcen weiß aber nicht in welcher lib das ist
    //stdio.h,stdlib.h,.. irgend sowas
    
    // [LordJaxom] C++-like: cin.get()
    
           break;
           }
        }
        return 0;
    }
    

    wofür brauchst du namespace ???

    Vermutlich weil im namespace std cin und cout liegen? 😉

    ausgabe über printf wäre viel schöner und einfacher

    Aber nicht C++. Ausserdem kann man sich darüber vortrefflich streiten 🤡



  • danke für eure schnelle hilfe

    trozdem habe ich nicht verstanden was du hiermit meinst ?!
    %: modulo -> zahl wird durch 10 dividiert und rest wird ausgegeben

    wie benutz ich den %:modulo ?



  • Hallo !

    c4pone schrieb:

    danke für eure schnelle hilfe
    trozdem habe ich nicht verstanden was du hiermit meinst ?!
    %: modulo -> zahl wird durch 10 dividiert und rest wird ausgegeben
    wie benutz ich den %:modulo ?

    Das mit dem Modulo- Operator in deiner Schleife ist schon völlig richtig, wenn du noch das break; entfernst, erzielst du den gewünschten Effekt 😉

    Gruß, p.



  • % gibt einfach den rest bei einer division zurück

    21%3==0
    22%3==1
    23%3==2
    24%3==0

    und so weiter für beliebige natürliche zahlen...



  • hmm am einfachsten macht man das so:

    #include <iostream>
    
    void await_input();
    
    const unsigned short max_loops = 100; // halt die entsprechende Anzahl eintragen.
    
    int main()
    {
    	std::cout << "My Programm V1.0" << std::endl;
    
    	for (unsigned short loop = 1; loop <= max_loops; ++loop)    
    	{
    		std::cout << "Das Quadrat von \"" << loop << "\" ist \"" << (loop * loop) << "\"!" << std::endl;
    		if (loop % 10 == 0)
    			await_input();
    	}
    }
    
    void await_input()
    {
    	std::cout << "Druecken Sie eine beliebige Taste zum Fortfahren!" << std::endl;
        std::cin.clear();
        std::cin.ignore(std::cin.rdbuf()->in_avail());
        std::cin.get();
    }
    


  • ahhh jetz hab ich das mit % modul verstanden ^^ danke jetz gehts auch so wie ich es haben will !!
    muss ma nen lob ausprechen hier wird einem wirklich direkt geholfen 🙂


Anmelden zum Antworten