C# - Dvourozměrné pole, inkrement směrem doprostřed – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# - Dvourozměrné pole, inkrement směrem doprostřed – .NET – Fórum – Programujte.comC# - Dvourozměrné pole, inkrement směrem doprostřed – .NET – Fórum – Programujte.com

 

jadus
~ Anonymní uživatel
36 příspěvků
5. 9. 2011   #1
-
0
-

Zdravim

Zadání: Vytvořte čtvercové dvojrozměrné pole tak, aby po obvodu byly 0, menší obvod 1, .....
    Velikost pole zadejte z klávesnice.

Už chvilku si s tím lámu hlavu. Mám klasicky dva forcykly na plnení, ale asi mi nejak nefunguje ta podminka uvnitr...

int[,] pole = new int[10,10]; int t = 0;
                        int velikost = int.Parse(Math.Sqrt(pole.Length).ToString());
                        for (int i = 0; i < velikost; i++)
                        {                            
                            for (int j = 0; j < velikost; j++)
                            {
                                
                                    if ((j >= t && j<=velikost-(t+1)) && (i>=t && i <= velikost-(t+1) ))
                                        pole[i, j] = t;
                                Console.Write("{0}\t", pole[i, j]);
                                //Console.WriteLine(t);
                            }
                            t++;



                            Console.WriteLine();
                        }

No a můj problém spočívá v tom, že když if upravím ručně tak to funguje, ale když to zkusím zadat z toho forcyklu vykreslí mi to pekny trojuhelník.

Predem dik za radu ;)

Nahlásit jako SPAM
IP: 62.168.43.–
br4MboR
~ Anonymní uživatel
1 příspěvek
5. 9. 2011   #2
-
0
-

#1 jadus
 

int num = 0;
int row, col;
int length = 0;
bool inputOK = false;

//zadani velikosti pole i s overenim zda se jedna o cislo
while (!inputOK)
{
    Console.Write("Zadej velikost pole: ");
    inputOK = int.TryParse(Console.ReadLine(), out length);
}


/////////////samotne vyplneni pole
int[,] pole = new int[length, length];
int halfLength = length / 2;
while (num < halfLength)
{
    for (row = num; row < length - num; row++)
    {
        for (col = num; col < length - num; col++)
        {
            pole[row, col] = num;
        }
    }
    num++;
}
//////////////////////

//vypis pole
for (int i = 0; i < length; i++)
{
    for (int j = 0; j < length; j++)
    {
        Console.Write(" {0}", pole[i, j]);
    }
    Console.WriteLine();
}

Console.ReadKey();

Vím, že jsi chtěl jen radu, ale rovnou jsem to napsal :) snad ti to pomůže. Je to celkem jednoduché :)

Nahlásit jako SPAM
IP: 213.29.146.–
jadus
~ Anonymní uživatel
36 příspěvků
5. 9. 2011   #3
-
0
-

:P dik, ze zdroje to stejnak pochopim asi lip...

Nahlásit jako SPAM
IP: 62.168.43.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Podobná vlákna

Dvourozměrné pole — založil Yenkee

C++,Dvourozmerne pole — založil mokvar

Dvourozmerne pole — založil Merik

Dvourozměrné pole — založil IDKFA

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý