for-Schleifen



  • Ich habe hier ein kleines Programm geschreiben, bei dem drei for-Schleifen bis 10
    hoch zählen. Das Ergbnis wird eine Datei ausgeben. Könnte mir mal jemand an Hand der Datei erklären welche Schleife wie hochzählt...Vielen Dank!

    # include <iostream>
    # include <fstream>
    
    using namespace std;
    
    int main()
    {
        fstream datei;
        datei.open("Ergebnis.txt", ios::out);
        int i;
        int j;
        int k;
        for (i=1; i<=10; i++)
        {
            for(j=1; j<=10; j++)
            {
                for (k=1; k<=10; k++)
                {
                     cout << i*j*k<< endl;
                     datei<<i*j*k<<endl;
                }
            }  
        }
    
        datei.close();
    
    return 0;
    }
    


  • Ist dir nicht klar, was der Quellcode macht, oder warum brauchst du das "anhand der Ausgabe"? Ist nebenbei ein ziemlich schlechtes Format für die Ausgabe.

    Mach lieber

    cout << i<<" "<<j<<" "<<k<< endl;
    

    dann verstehst du es sofort 🙂



  • das heisst einfach nur dass eine anweisung in dienem fall 10mal ausgeführt wird.

    die anweisung bei dir ist wiederum eine schleife die eine innere anweisung 10mal ausführt

    und diese innere anweisung wird wiederum auch 10mal ausgeführt und da wird dann etwas berechnet

    also 10* 10* 10 sprich 1000 mal wird deine multiplikation ausgerechnet und das ergebnis in eine datei geschrieben



  • Vielen Dank ist mir klarer geworden!



  • Das geht übrigens auch kürzer (nämlich weniger als halb so lang):

    fstream datei("Ergebnis.txt"); 
        for         (int i=1; i<=10; i++) 
            for     (int j=1; j<=10; j++) 
                for (int k=1; k<=10; k++)
                { 
                     cout << i*j*k << endl; 
                     datei<< i*j*k << endl; 
                }
    


  • Das geht übrigens auch schöner, nämlich mehr als doppelt so schön.

    [20:05:09] <***> http://www.c-plusplus.net/forum/293414 // siehe letzter Beitrag, kann es sein, dass dieser "Hacker" sich seit Wochen immer mehr blamiert? 🙂
    [20:05:16] <Paprikachu> ja
    [20:05:37] <Paprikachu> ich versuche ihn die ganze zeit zurechtzuweisen, aber ich bin alleine damit 😞
    [20:05:43] <***> Aber auch einfach bei jedem Beitrag! Jedes mal denk ich mir Kopf->Tisch(); 🙂
    [20:05:49] <Paprikachu> jop
    [20:05:56] <***> Der ist so dumm, da bin ich zu faul zum schreiben.^^

    Der User möchte nicht mit Namen genannt werden.



  • 314159265358979 schrieb:

    Das geht übrigens auch schöner, nämich doppelt so schön.

    Es ist erstaunlich, daß ausgerechnet du dich darüber aufregst, wenn jemand auf RAII und lokale Variablendefinitionen hinweist.

    (PS: Vielleicht kannst du ja "***" überreden dich offen zu unterstützen, wenn du Probleme damit hast daß du alleine dastehst 😃 (aber andererseits bist du ja genausogut darin, dich zu blamieren :D))



  • CStoll schrieb:

    Es ist erstaunlich, daß ausgerechnet du dich darüber aufregst, wenn jemand auf RAII und lokale Variablendefinitionen hinweist.

    Im Endeffekt hat er aber nur auf "das geht auch kürzer" hingewiesen. Damit ist dem TE wohl nicht sonderlich geholfen.

    #include <iostream>
    #include <fstream>
    
    int main()
    {
        ofstream datei("Ergebnis.txt"); // Wir öffnen die Datei im Konstruktor
        for (int i = 1; i <= 10; i++) // Ein paar Leerzeichen schaden nicht, aber wichtiger ist das lokale definieren der Variablen.
        {
            for (int j = 1; j <= 10; j++)
            {
                for (int k = 1; k <= 10; k++)
                {
                     cout << i * j * k << endl;
                     datei << i * j * k << endl;
                }
            }
        }
        // return 0 ist default, kann man aber trotzdem hinschreiben.
    } // RAII schließt die Datei automatisch beim verlassen des Scopes
    

    Sieht doch gleich ganz anders aus, aber oh nein, wir haben nicht genug Zeilen gespart. 😃



  • Hacker schrieb:

    Das geht übrigens auch kürzer (nämlich weniger als halb so lang):

    fstream datei("Ergebnis.txt"); 
        for         (int i=1; i<=10; i++) 
            for     (int j=1; j<=10; j++) 
                for (int k=1; k<=10; k++)
                { 
                     cout << i*j*k << endl; 
                     datei<< i*j*k << endl; 
                }
    

    Wow, das ist genial. Du solltest dich in MasterHacker umbennenen und dir die dämlichste Formatierung aller Zeiten patentieren lassen.



  • ich glaub Mister "***" ist gefunden, jedenfalls von der anzahl der buchstaben würde es passen 😃

    herrlich son kindergarten mit erwachsenen (oder fast erwachsenen)



  • Muss dich leider enttäuschen, EOP != ***.



  • 314159265358979 schrieb:

    Muss dich leider enttäuschen, EOP != ***.

    LOL, ich bin's nicht.

    "***" kann auch reine Schreibfaulheit von 314159265358979 bedeuten:
    Er war einfach zu faul 10 Sternchen einzufügen und hat sich mit drei begnügt.


Anmelden zum Antworten