Variablen zusammenfassen



  • Hallo, Gemeinde ich habe ein kleines Problem, wie kann ich aus zwei Variablen eine machen?

    int a = 1;
    int b = 5;
    

    Rauskommen soll

    int c = 15;
    

    Hat da jemand eine Idee? Vorallem muss ich die auch wieder aus einander bekommen. Man könnte den Umweg über String gehen, aber kennt da jemand was effektiveres?



  • Du kannst es in einen stringstream schreiben dann in einen string umwandeln und dann wieder zurückwandeln, dazu schau einfachmal in den FAQ nach"Einmal Zahl nach String und zurück".



  • Sind a und b immer einstellig? Dann:

    c=10*a+b;
    

    Zurück:

    a=c/10;
    b=c%10;
    

    Wenn nicht, wie erkennst du, wo a endet und b anfängt?



  • Nein, a und b können beliebig sein auch 2 und 3 stellig... da fällt mir das ich dann selbst mit einem String Probleme bekomme. Es ist ein Koordinatensystem [x][y] und ich möchte einen Schnittpunkt erstellen. Quasi S(x,y) so das S ein int ist.



  • Warum musst Du die Werte unbedingt zusammen in einen Integer packen? Musst Du?

    cheers, Swordfish



  • jd schrieb:

    Nein, a und b koennen beliebig sein auch 2 und 3 stellig... da faellt mir das ich dann selbst mit einem String Probleme bekomme. Es ist ein Koordinatensystem [x][y] und ich moechte einen Schnittpunkt erstellen. Quasi S(x,y) so das S ein int ist.

    S(x,y) kannst du aber nicht als Integer-Wert darstellen.

    wie waers mit

    struct point
    {
        int x;
        int y;
    };
    
    point p;
    
    p.x = 1;
    p.y = 5;
    


  • Für einen Punkt in einem zwei Dimensionalen Koordinatensystem darzustellen braucht man zwei Punkte.
    Wie kann man also bestimmen wo der Punkt liegt bei 15 (c = 15)
    Eventuell ein Denkfehler?

    X(a/b) => a = 1, b = 5
    
    5 | X
    4 |
    3 |
    2 |
    1 |             
    0 |______________
        1  2  3  4  5
    

    Das struct ist (wie gezeigt) dafür optimal.


Anmelden zum Antworten