Zwei Integer-Werte in einer Variablen zusammenfassen



  • Hallo zusammen!

    Ich will zwei Integerwerte, die ich beim durchlaufen von zwei for-Schleifen bekomme in einem Array getrennt durch einen ":" oder ";" zusammenfassen. An einer Stelle im Array sollte also etwas stehen wie "12:45", damit ich später auf die einzelnen Zahlen wieder zugreifen kann.

    Meine Frage lautet also: Was für eine Form muss das Array haben? (Int, char, double?) Kann ich überhaupt die beiden Werte durch ein ":" trennen, und wenn ja, wie?

    Ich habe es bis jetzt mit strcat versucht, das hat aber nicht funktioniert.

    Danke schon mal für die Hilfe!



  • Du könntest dir ein struct definieren, das aus zwei Zahlen besteht - und diese dann geeignet formatiert ausgeben:

    typedef struct
    {
      int x,y;
    } int_pair;
    
    ...
    int_pair data[100];
    ...
    for(int i=0;i<100;++i)
      printf("%d:%d\n",data[i].x,data[i].y);
    ...
    

    (PS: Das ":" in die Daten direkt aufzunehmen ginge zwar auch - ist aber eher hinderlich, wenn du mit deinen Zahlen weiterrechnen willst)



  • vielleicht sowas?

    typedef int paar[2];//struct paar{int x; int y;}; geht auch. 
    paar array[100];
    int i;
    int writepos=0;
    
    for(i=0;i<10;++i){
      for(j=0;j<10;++j){
         if(i*j%5==0){
            array[writepos][0]=i;
            array[writepos][1]=j;
            ++writepos;
         }
      }
    }
    printf("die paare, deren produkt durch 5 teilbar ist:\n");
    for(i=0;i<writepos;++i){
       printf("%d:%d ",array[i][0],array[i][1]);
    }
    


  • Danke, das ging ja schnell!

    Beide Varianten gefallen mir gut, aber die zweite macht wohl eher das, was ich brauche, aber: Danke euch beiden!


Anmelden zum Antworten