Nakreslení schodů v konzoli pomocí while – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nakreslení schodů v konzoli pomocí while – C / C++ – Fórum – Programujte.comNakreslení schodů v konzoli pomocí while – C / C++ – Fórum – Programujte.com

 

Nigel Pulsford
~ Anonymní uživatel
1 příspěvek
14. 10. 2015   #1
-
0
-

Zdravím, potřebuju vypsat v konzoli schody, které mají vypadat takto:

_
X_
XX_
XXX_

Bohužel můj výstup je takový, že se mi vypíšou všechna X hned na druhém řádku. Vím kde je chyba, ale bohužel nevím, jak to spravit, aby to bylo správně - vykoná se začátek cyklu a pak se vykoná vnořený cyklus úplně celý, čili to vypadá:

_

xxx_

_

Potřebuju ty X rozložit tak, aby na každém řádku bylo 1 X navíc k ostatním (viz. ukázka). Tak nějak do toho hledím už asi 45 minut a nenapadá mě jak ten kód spravit, popř. úplně překopat, aby se dostavil požadovaný výsledek   

#include <iostream>

using namespace std;

int main()
{
    int i;
    int j = 0;
    cout << "Zadej pocet schodu: " << endl;
    cin >> i;
    //int j = 0;
    while(i>0)
    {
        cout << "_" << endl;
        while (j<i)
        {
            j++;
            cout << "X";
        }
        i--;
    }
    return 0;
}


Předem děkuji za pomoc!

Nahlásit jako SPAM
IP: 217.196.213.–
KIIV
~ Moderátor
+43
God of flame
14. 10. 2015   #2
-
0
-

Po prvnim prubehu zustane j uz vetsi jak i a tak to zustane naporad

A ikdyz se to opravi, tak je to stale jeste opacne

Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Elektron
~ Anonymní uživatel
1 příspěvek
18. 10. 2017   #3
-
0
-

#1 Nigel Pulsford

Správně to má být takhle:

#include <iostream>

using namespace std;

int main()
{
    cout << "Zadejte pocet schodu:" << endl;
    int schody;
    int pocet;
    int ix = 0;
    cin >> schody;
    pocet = schody;
    if ((cin.fail()) || (schody < 0))
    {
        cout << "Nespravny vstup." << endl;
        return 0;
    }
    while (schody > 0)
    {

        while ((pocet - schody) - ix > 0)
        {
          ix++;
          cout << "X";
        }
        cout << "_" << endl;

        ix = 0;
        schody--;
    }
    return 0;
}

Pokud se špatným vstupem počítat nepotřebuješ, tak to ignoruj.

Nahlásit jako SPAM
IP: 2001:718:1001:1c3:b811:29...–
gna
~ Anonymní uživatel
1891 příspěvků
18. 10. 2017   #4
-
0
-

Ehm.

for (int i = 0; i < pocet_schodu; ++i)
{
	for (int j = 0; j < i; ++j)
	{
		cout << "X";
	}
	cout << "_" << endl;
}
Nahlásit jako SPAM
IP: 213.211.51.–
18. 10. 2017   #5
-
0
-

Má smysl se zabývat vláknem starým 2 roky?

hu

Nahlásit jako SPAM
IP: 193.86.81.–
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, 80 hostů

Moderátoři diskuze

 

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