Überprüfung ob es einen Wert einmal/mehrmals in einem 2-Dimensionalen Feld gibt



  • Also Die Überschrift sagt eigentlich schon alles, also ich bräuchte so eine Überprüfung für mein Informatik-Projekt in C und nun ja das ist jetzt noch mein letztes Problem, dass eine Lösung braucht, die ich aus lauter Verzweiflung hier noch stelle.

    Bitte antwortet schnell!!! 😞 😞 😞



  • so vllt:

    füge die elemente aus dem array A[m][n] sortiert ein ins array B[m*n],
    durchlaufe das sortierte array B nach duplikaten suchend.



  • hier mal was auf die schnelle

    einfaches beispiel, kannst so oft und soweit du willst erweitern.

    int array[10] = { 1,2,3,4,4,5,6,7,8,9};
    int x,y; 
    
    for (x = 0 ; x <= 9; x++ ) {
    
    	for (y = 0; y <= 9; y++) {
    		if (y == x)
    			continue;
    		if (array[x] == array[y])
    			printf ("Doppelt! An stelle %x und %d\n",x,y);
    		} 
    	}
    


  • Das Feld sollte doch zweidimensional sein!
    Da gibt es natürlich noch den Weg des Drachen:

    #define s_x 5
    #define s_y 5
    
    int main()
    {
      int a[s_x][s_y] = 
      {
        {1,2,3,4,5,},
        {6,7,8,9,10,},
        {11,12,13,14,15,},
        {16,17,18,19,20,},
        {21,22,5,24,25,},
      };
      for (int i = 0; i < s_x; ++i)
        for (int j = 0; j < s_y; ++j)
          for (int k = 0; k < s_x; ++k)
            for (int w = 0; w < s_y; ++w)
              if ((i != k || j != w) && a[i][j] == a[k][w])
                printf("Found at: [%i][%i] + [%i][%i]\n", i, j, k, w);
    }
    

    MUAHAHA 😃



  • Öhhhm ich glaube ich habe das etwas zu grob erklärt, also ich wollte ja eigentlich überprüfen lassen, ob sich z.B. eine andere zahl wie 9 in einem zwei-Dimensionalen Feld ,das am Anfang ja alles auf 0 war, befindet. also so was wie eine Programm zum finden von einer Nadel im Heuhaufen.



  • Yifi schrieb:

    ob sich z.B. eine andere zahl wie 9 in einem zwei-Dimensionalen Feld ,das am Anfang ja alles auf 0 war, befindet.

    WTF 😕
    Jetzt noch mal auf Deutsch.



  • Wenn du nur wissen willst, ob irgendein Wert außer 0 in deinem Array steht, reicht es einmal drüberzulaufen und alle Einträge zu vergleichen:

    #define s_x 5
    #define s_y 5
    
    int main()
    {
      int a[s_x][s_y] = 
      {
        ...
      };
      for (int i = 0; i < s_x; ++i)
        for (int j = 0; j < s_y; ++j)
          if(a[i][j]!=0)
            printf("found %d at [%d][%d]\n",a[i][j],i,j);
    }
    


  • Yifi schrieb:

    Bitte antwortet schnell!!! 😞 😞 😞

    Tja, ist Sonntag und noch nichts gemacht. Der Montag droht wohl mit Abgabetermin.



  • OK, wusst ja nicht dass das so einfach ist 😃 danke! Jetzt aba mal schnell Projekt beenden! 😉



  • So einen Quatsch macht man während eines Informatik Studiums? 😮



  • Was soll das für ein Studium sein, wenn man an so einer Aufgabe scheitert? 🙂



  • nee is bestimmt Schulinformatik....

    Im Informatikstudium lernt man doch bestimmt gar kein C, sondern nur Brechreizsprachen wie Java 😃


Anmelden zum Antworten