Kezdőoldal » Számítástechnika » Programozás » C#-ban kell egy olyan programo...

C#-ban kell egy olyan programot írnom ami a mátrixot sor és oszlop alapján is növekvő sorrendbe tesz. Mi a hiba?

Figyelt kérdés

int[,] szamok = new int[5, 5];

Random rnd = new Random();

//feltöltés

for (int i = 0; i < szamok.GetLength(0); i++)

{

for (int j = 0; j < szamok.GetLength(1); j++)

{

szamok[i, j] = rnd.Next(10, 100);

}

}

//kiíratás

for (int i = 0; i < szamok.GetLength(0); i++)

{

for (int j = 0; j < szamok.GetLength(1); j++)

{

Console.Write("{0} ", szamok[i, j]);

}

Console.WriteLine();

}

//rendezés (szar)

int max = 0;

int r = szamok.GetLength(0);

for (int i = 0; i < 5; )

{

while (r > 0)

{

int j = 0;

int k = 0;

max = szamok[i, r - 1];



while (j < r)

{

if (szamok[i, j] > max)

{

max = szamok[i, j];

k = j;

}

j++;

}

szamok[i, k] = szamok[i, r - 1];

szamok[i, r - 1] = max;

r--;


}

i++;

}

//rendezett kiírása

Console.WriteLine();

for (int i = 0; i < szamok.GetLength(0); i++)

{

for (int j = 0; j < szamok.GetLength(1); j++)

{

Console.Write("{0} ", szamok[i, j]);

}

Console.WriteLine();

}


Console.ReadLine();



2012. nov. 4. 14:38
 1/2 anonim ***** válasza:

Külön rendezőfüggvényt készítenék egy dimenziós tömbökre, és azt hívogatnám.

Amit te csinálsz, az nem rendezés. Többféle rendezéses algoritmus van, válassz ki egy szimpatikusat:

[link]

2012. nov. 4. 18:22
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

Nem biztos hogy jól értettem a feladatot, de itt az én megoldásom, ami persze messze nem ideális, de itt nyilván a tanuláson és a gyakorláson van a hangsúly.

Nyilván helyben rendezéssel érdekes a többdimenziós tömb rendezés.

Az én megoldásomban egy dimenziós tömböt szimulálok egyszerű osztás és maradék számítással.


//rendezés (szar)

int r = szamok.Length - 1;

while (r > 0)

{

for (int i = 0; i < r; i++)

{

int sor = i / szamok.GetLength(1);

int oszlop = i % szamok.GetLength(1);

int sorKov = (i + 1) / szamok.GetLength(1);

int oszlopKov = (i + 1) % szamok.GetLength(1);

if (szamok[sor, oszlop] > szamok[sorKov, oszlopKov])

{

int akt = szamok[sor, oszlop];

szamok[sor, oszlop] = szamok[sorKov, oszlopKov];

szamok[sorKov, oszlopKov] = akt;

}

}

r--;

}

2012. nov. 5. 10:21
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!