2d Array hilfe



  • #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    //Swap für Arrayelemente--------------------
    void swaparr(int A[],int i,int min){
    int temp=A[i];
    A[i]=A[min];
    A[min]=temp;
    }
    //------------------------------------------
    
    //BubbleSort--------------------------------
    void bubblesort(char A[]){
         int i=0,test;
    
         do{
         test=0;
    
         if(A[i]>A[i+1]){
             swaparr(A,i,i+1);//Fehler
              test=1;
         }
    
         i++;
    
         }while(test==1); 
    
         }
    //-------------------------------------------
    
    int main(int argc, char *argv[])
    {
        int i,f,j;
        char feld[1024][80];
    
        //Einlesen----------------------------------------
         printf("Wie viele Strings wollen Sie einlesen?");
         scanf("%d",&i);
         for(f=0;f<=i;f++)gets(feld[i]);   
         //----------------------------------------------- 
    
         //Sortieren--------------------------------------
         for(f=0;f<=i;f++)bubblesort(feld[f]);
         //-----------------------------------------------
    
        //for(f=0;f<=i;f++)ausgeben(feld,f);
      system("PAUSE");	
      return 0;
    }
    

    Es sollen hierbei maximal 1024 strings der Länge 80 eingegeben und dann sortiert werden. Allerdings habe ich probleme bei der übergabe des 2d Arrays.

    Ich übergebe den Array an die Bubblesortfunktion in der form feld[i], weiss allerdings nicht wie ich ihn an die funktion swapparr übergeben muss.



  • du hast ein sogenanntes "automatisches array", bei dem *automatisch* speicher alloziiert wird. du hast nur einen kontinuierlichen speicherblock, der dir durch C als 2dimensional dargestellt wird.

    du willst dein array (kein "2D array", ein "array von char*") selber aufbauen, denn dann kannst du auch strings im array einfacher tauschen.
    http://www.c-plusplus.net/forum/viewtopic-var-p-is-933701.html#933701
    http://www.c-plusplus.net/forum/viewtopic-var-p-is-989590.html#989590


Anmelden zum Antworten