Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet C++-ban egy...

Hogyan lehet C++-ban egy akkora négyzetet kiírni, mint a beírt szám?

Figyelt kérdés
for ciklussal megvan már a teteje meg a baloldala, de az alját és a jobboldalát hogyan csináljam meg?
2015. júl. 23. 20:55
 1/6 anonim ***** válasza:

//Előbb kirajzolod csak a tetejét

for (int Col = 0; Col < Value; Col++)

.. std::cout << "-";

std::cout << std::endl;


//Majd a bal és jobb oldalát

for (int Row = 1; Row < Value - 1; Row++) {

.. //A sor elején állunk, rajzoljuk a bal oldalát

.. std::cout << "|";

.. //A maradék helyet szóközzel töltjük fel

.. for (int Col = 1; Col < Value - 1; Col++)

.. .. std::cout << " ";

.. //Majd a jobb oldalát is kirajzoljuk

.. std::cout << "|";

.. std::cout << std::endl;

}


//Majd az alját (ugyanaz a kód, mint a tetejét kirajzoló)

for (int Col = 0; Col < Value; Col++)

.. std::cout << "-";

2015. júl. 23. 21:03
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

ha ASCII karakterekre gondolsz, akkor a legegyszerűbb:

for (unsigned int i = 1; i <= sorok_szama; i++)

{

for (unsigned int j = 1; j <= oszlopok_szama; j++)

{

// Ha az első vagy utolsó sorban, vagy első vagy utolsó oszlopban vagyunk, írja ki a karaktert, amiből a négyzet áll, különben írjon egy szünetet

if (i == 1 || j == 1 || i == sorok_szama || j == oszlopok_szama)

std::cout << '#';

else

std::cout << ' ';


// Ha ez az utolsó oszlop, új sor is kell

if (j == oszlopok_szama)

std::cout << std::endl;

}

}


Bár ez bármilyen téglalapot kirajzol, nem csak négyzetet. Ez nem is olyan effektív, inkább egyszerű.

2015. júl. 23. 21:07
Hasznos számodra ez a válasz?
 3/6 anonim válasza:
Lilla_1991! Te nő vagy, vagy fiú, aki egy női felhasználó névvel gyk-zik, pl. a hugáéról?
2015. júl. 23. 21:47
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

Windows alatt:


bool DrawRectangle(int width, int height, char ch)

{

HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);

if (!hOutput)

return false;


CONSOLE_SCREEN_BUFFER_INFO csbi = {0};

GetConsoleScreenBufferInfo(hOutput, &csbi);


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

std::cout << ch;


SetConsoleCursorPosition(hOutput, COORD{(SHORT)0, (SHORT)(csbi.dwCursorPosition.Y + height - 1)});


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

std::cout << ch;


for (int i = csbi.dwCursorPosition.Y + 1; i < height - 1; i++)

{

SetConsoleCursorPosition(hOutput, COORD{(SHORT)0, (SHORT)(csbi.dwCursorPosition.Y + i)});

std::cout << ch;

SetConsoleCursorPosition(hOutput, COORD{(SHORT)(width - 1), (SHORT)(csbi.dwCursorPosition.Y + i)});

std::cout << ch;

}


SetConsoleCursorPosition(hOutput, COORD{(SHORT)0, (SHORT)(csbi.dwCursorPosition.Y + height)});


return true;

}


int main()

{

DrawRectangle(25, 11, '@');


SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), COORD{(SHORT)6, (SHORT)5});


std::cout << "Hello World!";


std::getchar();

return 0;

}

2015. júl. 23. 21:56
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Ui.:

Azt elfelejtettem megoldani ha írtak előtte már, jól működjön de azt már te is megtudod oldani ha kell.

2015. júl. 23. 21:59
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
#3 mivel a gyk regisztrációkor nem néz be a szoknyád alá, így nem kell a húgodat megkérni arra női néven lehessen regisztrációd. :)
2015. júl. 24. 07:22
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!