Suchen in Arrays



  • Hallo Forum
    jetzt brauche ich Hilfe bei der Suche in Arrays, einen max_wert aus dem Array zu ermitteln??! 😞
    Für euch sicher ganz einfach! So hab ich angefangen:

    #include<stdio.h>
    
    void main (void)
    {
    
    	int array[]={1,2,5,4,8,3,9,0,7,6};
    	int gefunden=0;
    	for(int i = 0; i < 10;i++)
    	{
    	     if(array[i] > array[i+1])
    	    {
    	       gefunden = array[i];
    	    }
    	}
    
      printf("Gefunden: %d \n",gefunden);
    }
    

    Aber das kann so nicht funktionieren, und mit der Seite auf www.sortieralgorithmen.de kann ich leider nichts anfangen! 😕 🤡
    Danke
    mfg
    mirso



  • Du vergleichst ja auch immer das aktuelle Element mit dem darauffolgenden. Mal davon abgesehen, dass das mit Sicherheit Probleme beim letzten Element gibt, vergleich einfach immer das aktuelle mit dem derzeit größtem Element.



  • Hi
    danke für dein Beitrag, das ist es ja, bis zu Stelle wo die 9 ist ist alles ok aber dann nicht mehr, wie komme ich zu dem größtem Element, bzw. wie soll ich den ermitteln???
    danke
    mirso



  • #include <stdio.h>
    
    int main() { 
       int a[] = {1,2,33,-1,545,-43,0,2};
       int max = a[0];
    
       for(int i=1; i < sizeof(a)/sizeof(int); ++i)
          if(max < a[i])
             max = a[i];
    
      printf("max=%i\n", max);
      return 0;
    }
    


  • Hi
    danke, die sizeof() würde mir nie eingefallen!!!

    interpreter schrieb:

    #include <stdio.h>
    
    int main() { 
       int a[] = {1,2,33,-1,545,-43,0,2};
       int max = a[0];
     
       for(int i=1; i < sizeof(a)/sizeof(int); ++i)
          if(max < a[i])
             max = a[i];
    
      printf("max=%i\n", max);
      return 0;
    }
    

    Ob das auch mit für die MIN ermittlung funktionieren würde?! 😕

    ok, danke
    mfg
    mirso



  • mirso schrieb:

    Hi
    danke, die sizeof() würde mir nie eingefallen!!!

    interpreter schrieb:

    #include <stdio.h>
    
    int main() { 
       int a[] = {1,2,33,-1,545,-43,0,2};
       int max = a[0];
     
       for(int i=1; i < sizeof(a)/sizeof(int); ++i)
          if(max < a[i])
             max = a[i];
    
      printf("max=%i\n", max);
      return 0;
    }
    

    Ob das auch mit für die MIN ermittlung funktionieren würde?! 😕

    ok, danke
    mfg
    mirso

    Du hast offensichtlich die Funktionweise noch nicht verstanden. Schau dir in Ruhe nochmal den Algorithmus an, dann wirst du mehr lernen, als wenn ich dir jetzt einfach die Lösung hinklatsche. Tipp: Du musst für die Ermittlung des kleinsten Wertes nur 1 Zeichen im Sourcecode ändern. 🙂



  • Hi!

    als wenn ich dir jetzt einfach die Lösung hinklatsche.

    EDIT: Lösung entfernt *interpreter recht geb*

    Code-Hacker



  • 😡



  • Hi!

    Guck nochmal, vielleicht hat er es ja noch nicht gesehen 😃

    Code-Hacker



  • Code-Hacker schrieb:

    Hi!

    Guck nochmal, vielleicht hat er es ja noch nicht gesehen 😃

    Code-Hacker

    😃 🤡



  • interpreter schrieb:

    sizeof(a)/sizeof(int)
    

    Das ist nicht schön. Schreib lieber

    sizeof(a) / sizeof(a[0])
    

    Das funktioniert auch, wenn irgendwann mal aus dem int Array ein double Array wird oder was auch immer.



  • Hallo Leute
    danke für eure Beiträge, das ist mehr als ich gehofft habe ;-), ich habs auch irgend wie geschafft, aber das hier ist deutlich besser! 👍 , vor allem das hier:

    int a[] = {1,2,33,-1,545,-43,0,2};
    int max = a[0]; // der max ein arraywert zu zuweisen!
    

    Mein Fehler das ich max ein statischen wert gegeben habe! Und darum habe ich hier gepostet! 🤡

    int a[] = {1,2,33,-1,545,-43,0,2};
    int max = 0; // Nicht gut!!!! Minuswerte nicht erreichbar!
    

    Danke euch 👍
    mirso



  • mirso schrieb:

    Hallo Leute
    danke für eure Beiträge, das ist mehr als ich gehofft habe ;-), ich habs auch irgend wie geschafft, aber das hier ist deutlich besser! 👍 , vor allem das hier:

    int a[] = {1,2,33,-1,545,-43,0,2};
    int max = a[0]; // der max ein arraywert zu zuweisen!
    

    Mein Fehler das ich max ein statischen wert gegeben habe! Und darum habe ich hier gepostet! 🤡

    int a[] = {1,2,33,-1,545,-43,0,2};
    int max = 0; // Nicht gut!!!! Minuswerte nicht erreichbar!
    

    Danke euch 👍
    mirso

    Nach deiner Auffassung dürfte das hier auch nicht gut sein:

    int a[] = {0,1,2,33,-1,545,-43,2};
    int max = a[0]; // der max ein arraywert zu zuweisen!
    

    Ergo, das Problem war ein anderes.


Log in to reply