Hilfe bei einer for-Schleife!



  • Hab folgenden Code:

    int l;
         for(l=0;l<7;l++){
                          if(array[0].y==array[l+1].y){
                                                       printf("%d,%d und %d,%d\n",array[0].x,array[0].y,array[l+1].x,array[l+1].y);
                                                       }
                          }
    
    for(l=1;l<7;l++){
                          if(array[1].y==array[l+1].y){
                                                       printf("%d,%d und %d,%d\n",array[1].x,array[1].y,array[l+1].x,array[l+1].y);
                                                       }
                          }
    

    .
    .
    .

    Also will, dass die for-Schleife 6 mal hintereinander läuft und dass immer bei der if-Anweisung die Zahl im array, also diese Zahl(die fettgedruckte):
    [cpp]
    array[1].y==array[l+1].y
    [/cpp]
    bei der nächsten for Schleife immer um eins erhöht wird bis sie die 7 erreicht.
    Hoffe ihr versteht was ich meine.
    Wie könnte ich das machen??
    DANKE um jede HILFE!



  • Ich weiß nicht , ob ich dich richtig vertehe, aber setzt doch einfach für 1 das

    l
    

    ?

    Gruß



  • Nee das habe ich auch schon versucht, funktioniert leider nicht!!!
    Trotzdem thx!



  • Jetzt hoffe, dass Ihr versteht was ich meine.
    Wie kann ich den folgenden Code einfacher und kürzer schreiben:

    int l;
         for(l=0;l<7;l++){
                          if(array[0].y==array[l+1].y){
                                                       printf(" %d,%d und %d,%d \n",array[0].x,array[0].y,array[l+1].x,array[l+1].y);
                                                       }
                          }
    
         for(l=1;l<7;l++){
                          if(array[1].y==array[l+1].y){
                                                       printf("%d,%d und %d,%d \n",array[1].x,array[1].y,array[l+1].x,array[l+1].y);
                                                       }
                          }
    
         for(l=2;l<7;l++){
                          if(array[2].y==array[l+1].y){
                                                       printf("%d,%d und %d,%d \n",array[2].x,array[2].y,array[l+1].x,array[l+1].y);
                                                       }
                          }
    
         for(l=3;l<7;l++){
                          if(array[3].y==array[l+1].y){
                                                       printf("%d,%d und %d,%d \n",array[3].x,array[3].y,array[l+1].x,array[l+1].y);
                                                       }
                          }
    
         for(l=4;l<7;l++){
                          if(array[4].y==array[l+1].y){
                                                       printf("%d,%d und %d,%d \n",array[4].x,array[4].y,array[l+1].x,array[l+1].y);
                                                       }
                          }
    
         for(l=5;l<7;l++){
                          if(array[5].y==array[l+1].y){
                                                       printf("%d,%d und %d,%d \n",array[5].x,array[5].y,array[l+1].x,array[l+1].y);
                                                       }
                          }
    
         for(l=6;l<7;l++){
                          if(array[6].y==array[l+1].y){
                                                       printf("%d,%d und %d,%d \n",array[6].x,array[6].y,array[l+1].x,array[l+1].y);
                                                       }
                          }
    


  • for(l=0;l<7;l++)
      for(k=0;k<7;k++)
    	if(array[k].y==array[l+1].y)
    	  printf(" %d,%d und %d,%d \n",array[k].x,array[k].y,array[l+1].x,array[l+1].y);
    


  • Kann das sein, das du deine Koordinaten sortieren willst ?
    Nimm doch lieber qsort dafür. 🙂

    Gruß,
    p.


Anmelden zum Antworten