For-Schleife



  • Hi,

    ich habe folgende Frage :

    Ich habe ein 2-Dimensionales-Array (1920Zeilen * 180Spalten)
    mit int-Werten.

    Jetzt will ich den höchsten int-Wert finden im Array.

    Kann mir jemand helfen ??

    Ich habe es so probiert :

    int temp1; 
        int k=0; 
        int l=0; 
        for(i=0;i<max_Abstand;i++) 
        { 
            for(j=0;j<HALFPI;j++) 
            { 
                for(k=0;k<i;k++) 
                { 
                    for(l=0;l<j;l++) 
                    { 
                        if(akkumulator[i][j] > akkumulator[k][l]) 
                            temp1 = akkumulator[i][j]; 
                        else if(akkumulator[k][l] > akkumulator[i][j]) 
                            temp1 = akkumulator[k][l]; 
                    } 
                } 
                k=0; 
                l=0; 
            } 
        }
    

    Aber es funktioniert nicht (Keine Rückmeldung,Abbruch)

    Kann jemand helfen ?? 🙂

    Gruss
    SmartyShark



  • Du hast zwei dimensionen, brauchst aber 4 schleifen?



  • Ich habe zwei Dimensionen richtig...

    Ich muss nun den höchsten Wert finden.

    Vier Schleifen würde bedeuten der Algorithmus vergleicht
    den aktuellen Wert immer wieder mit dem ersten angefangen...

    Insgesamt wäre (1920 * 180) zum Quadrat... = 1194393600000... (Durchläufe).

    Das sind zuviel denke ich.

    ODER MACHE ICH WAS FALSCH ???????? Ich brauch dringend Hilfe.

    Gruss
    SmartyShark



  • SmartyShark schrieb:

    Ich habe zwei Dimensionen richtig...

    Ich muss nun den höchsten Wert finden.

    Vier Schleifen würde bedeuten der Algorithmus vergleicht
    den aktuellen Wert immer wieder mit dem ersten angefangen...

    Insgesamt wäre (1920 * 180) zum Quadrat... = 1194393600000... (Durchläufe).

    Das sind zuviel denke ich.

    ODER MACHE ICH WAS FALSCH ???????? Ich brauch dringend Hilfe.

    Gruss
    SmartyShark

    int biggest = array[0][0];
    for (i = 0...max_i)
      for (j = 0...max_j)
        if (array[i][j] > biggest)
          biggest = array[i][j]
    

    That's all



  • Man natürlich,

    jetzt weiss ich es besser... 🙂

    Vielen Dank
    Gruss



  • wenn ich das richtig gesehen habe, dann hast du einen Bubblesort programmiert.
    Es gibt auch den qsort(), den du selbst nicht zu schreiben brauchst und der auch schneller ist.

    void qsort( void *base, size_t num, size_t width, int (__cdecl *compare )(const void *elem1, const void *elem2 ) );
    

    aus der MSN Library:

    Parameters

    base Start of target array
    num Array size in elements
    width Element size in bytes
    compare Comparison function
    elem1 Pointer to the key for the search
    elem2 Pointer to the array element to be compared with the key

    du benötigst dafür stdlib.h und search.h


Anmelden zum Antworten