Zahlen Formatieren??



  • #include <iostream.h>
    #include <stdlib.h>
    #include <iomanip.h>
    using namespace std;
    
    int main()
    {
       cout << "                **** K.l.e.i.n.e.s  -  E.I.N.M.A.L.E.I.N.S ****\n\n";
    
    for (int i=1; i <= 10; ++i)
    {
    cout << "      "<< i ;
    }
    
    cout <<"\n--------------------------------------------------------------------------------";
    
    cout <<"\n";
    for (int b=1; b <= 10; ++i)
    {
    cout  <<"      " << 2*i ;
    }
    
    return 0;
    }
    

    Also hier soll die 10'er Reihe vom kleinem Einmaleins ausgegeben werden!!

    Aber ab "10" stehen die Zahlen nicht mehr ordentlich...

    Soll so eine Art Tabelle Werden

    1    2    3    4    5    6    7    8    9    10
    2    4    6    8    10    12    14    16    18    20
    

    Seht ihr? Ab den 10'ern verschiebt es sich um 1 Stelle

    1    2    3    4    5    6    7    8    9    10
    2    4    6    8    10   12   14   16   18   20
    

    So soll's aussehen!

    Wird das mit "sprintf" gemacht???

    Weis nicht wie das verwendet werden soll...

    Hehe, ich mach das aber noch ordentlicher ;), ich kann die Linie z.B. zu einem String machen.

    string linie(81,"-"); // LOL, müsste doch so gehen, kanns ja mal probieren
    

    Kann ich statt Leerräume bei cout " " irgendwie "Füllzeichen" nehmen?

    Wie geht das nochmal?? setfill(" ")?

    Die Lösung steht zwar 2 Seiten weiter im Buch, aber ich guck da nicht nach ohne das gelöst zu haben 😮 😃



  • Kompiliert das so?

    Naja, zu deinem Problem:

    cout << setw(4) << i;
    cout << setw(4) << b*2;
    

    Bei mir siehts danach vernünftig aus.

    [EDIT]

    Die Lösung steht zwar 2 Seiten weiter im Buch, aber ich guck da nicht nach ohne das gelöst zu haben

    Aber wenn du hier fragst, kannste ja auch direkt nachgucken....
    [/EDIT]



  • Hinter jede Zahl einen Tabulator einfuegen!?! ("\t")
    Dann stehen die Zahlen schoen untereinander.



  • Ein Wunder, dass dein Programm ueberhaupt terminiert, da die Abbruchbedingung in der zweiten forSchleife nie erfuellt sein wird, da du i inkrementierst, und nich b. Außerdem wundert mich, dass das Programm bei der zweierReihe mit 2 anfaengt, und nich mit 20, da i ja noch von der ersten Schleife auf 10 stehen sollte... Hast du vielleicht alles nochma abgetippt und Fehler reingemacht, oder hab ich da was verpasst?

    mfG D1B



  • ja also so ist das zumindest kein KLEINES einmaleins mehr 😃



  • Beim G++ Compiliert der Code... hmmm...

    Die 2. Schleife bricht doch beim 10. Durchlauf ab?!?!?!

    Also mein Programm zeigt im Terminal keine Endlosschleife an...

    @GuybrushThreepwood: Kanns ja mal probieren



  • Also der Code ist so, wie du ihn gepostet hast, schlichtweg falsch....



  • Ach, Sorry, das isser net 😉

    Das war der, der net ging 😃

    Naja, hauptsache ich habs geschafft, geht mit setw!



  • #include <iostream.h>
    #include <iomanip.h>
    #include <stdlib.h>
    using namespace std;
    
    int main()
    {
    cout <<"\n**** Kleines Einmaleins ****\n\n";
    
    for (int i=1; i <= 10; ++i)
    {
    cout << i;
    cout << setw(5);
    }
    
    cout << endl;
    
    for (int i=1; i <= 10; ++i)
    {
    cout << i*2;
    cout << setw(5);
    }
    
    return 0;
    }
    

    Hier wird es wieder komisch angezeigt...

    #include <iostream.h>
    #include <iomanip.h>
    #include <stdlib.h>
    using namespace std;
    
    int main()
    {
    cout <<"\n**** Kleines Einmaleins ****\n\n";
    
    for (int i=1; i <= 10; ++i)
    {
    cout << setw(5) << i;
    
    }
    
    cout << endl;
    
    for (int i=1; i <= 10; ++i)
    {
    cout << setw(5) << i*2;
    }
    
    return 0;
    }
    

    Aber hier geht's, will zwar ein Rand neben haben, wär aber gut, wenn ich auch wüsste wie's mit Rand geht!!



  • #include <iostream.h>
    #include <iomanip.h>
    #include <stdlib.h>
    using namespace std;
    
    int main()
    {
    cout <<"\n**** Kleines Einmaleins ****\n\n";
    
    cout <<"-------------------------------------------------------\n";
    
    for (int j=1; j <= 10; ++j)
    {
    cout << "|    ";
    for (int z=1; z <= 10; ++z)
    {
    cout << setw(5) << j*z;
    }
    cout << endl;
    }
    
    return 0;
    }
    

    Das ist der Fertige, dass ich nicht sofort auf die Idee kam, verschachtelte "for"'s zu nehmen 😃

    Für die 1. Zahl wir also beim 1. durlauf 1 gezählt, beim 2. 2 u.s.w.

    Und in der anderen ist also z.b. 4*1, 4*2, 4*3 🙂


Anmelden zum Antworten