Element max w tablicy [3,3]

0

Cześć
Macie pomysł na krótszą wersje ??

        int[,] tab = new int[3, 3];
        tab[0, 0] = 43;
        tab[0, 1] = 1;
        tab[0, 2] = 2;
        tab[1, 0] = 55;
        tab[1, 1] = 4;
        tab[1, 2] = 3;
        tab[2, 0] = 39;
        tab[2, 1] = 7;
        tab[2, 2] = 8;
        int zmiana;
        for (int i = 0; i < 2; i++)
        {
            if (tab[0, i] > tab[0, i + 1])
            {
                zmiana = tab[0, i];
                tab[0, i] = tab[0, i + 1];
                tab[0, i + 1] = zmiana;
            }
            else
            {
                tab[0, i] = tab[0, i];
                tab[0, i + 1] = tab[0, i + 1];
            }
        }
        //Console.WriteLine(tab[0, 2]);
        for (int i = 0; i < 2; i++)
        {
            if (tab[1, i] > tab[1, i + 1])
            {
                zmiana = tab[1, i];
                tab[1, i] = tab[1, i + 1];
                tab[1, i + 1] = zmiana;
            }
            else
            {
                tab[1, i] = tab[1, i];
                tab[1, i + 1] = tab[1, i + 1];
            }
        }
        //Console.WriteLine(tab[1, 2]);
        for (int i = 0; i < 2; i++)
        {
            if (tab[2, i] > tab[2, i + 1])
            {
                zmiana = tab[2, i];
                tab[2, i] = tab[2, i + 1];
                tab[2, i + 1] = zmiana;
            }
            else
            {
                tab[2, i] = tab[2, i];
                tab[2, i + 1] = tab[2, i + 1];
            }
        }
        //Console.WriteLine(tab[2, 2]);
        for (int i = 0; i < 2; i++)
        {
            if (tab[i, 2] > tab[i + 1,2])
            {
                zmiana = tab[i, 2];
                tab[i, 2] = tab[i + 1, 2];
                tab[i + 1, 2] = zmiana;
            }
            else
            {
                tab[i, 2] = tab[i, 2];
                tab[i + 1, 2] = tab[i + 1, 2];
            }
        }
        Console.WriteLine("Element max: "+tab[2, 2]);
0

Wow. A nie wystarczy poniższe?

max = tab[ 0 ][ 0 ]
for i in tab:
  for j in tab:
    if tab[ i ][ j ] > max:
      max = tab[ i ][ j ]
0

Okej dzięki. Dopiero zaczynam przygodę z c sharpem i to był pierwszy pomysł na to zadanie ale po ukończeniu kod wyglądał mi na zbyt przydługi :)

0

W c# to będzie mniej więcej tak:

            int[,] tab = new int[3, 3];
            //tu gdzieś wypełnianie wartościami
            int max = Int32.MinValue;
            for (int i = 0; i < tab.GetLength(0); i++)
            {
                for (int j = 0; j < tab.GetLength(1); j++)
                {
                    if (tab[i, j] > max)
                    {
                        max = tab[i, j];
                    }
                }
            }
0

Dzięki za odpowiedz :)

1

Macie pomysł na krótszą wersje ??

             int[,] tab = new int[3, 3];
             tab[0, 0] = 43;
             tab[0, 1] = 1;
             tab[0, 2] = 2;
             tab[1, 0] = 55;
             tab[1, 1] = 4;
             tab[1, 2] = 3;
             tab[2, 0] = 39;
             tab[2, 1] = 7;
             tab[2, 2] = 8;
  int [,] tab = {{43,1,2}, {55,4,3}, {39,7,8}};
0

Dzięki :)

5
int max = (from int value in tab select value).Max();
5
int max = tab.OfType<int>().Max();

1 użytkowników online, w tym zalogowanych: 0, gości: 1