• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zagnieżdżone pętle

0 głosów
289 wizyt
pytanie zadane 5 lutego 2017 w C i C++ przez ofnero Użytkownik (830 p.)

Witam, zacząłem teraz przerabiać pętle zagnieżdżone i posiadam kod, który wypisuję w konsoli taką piramidkę:

 

Proszę o pomoc jak zmienić go, żeby pokazywał coś takiego. Po prostu nie mam pomysłu na to. Domyślam się, że jakieś spacje trzeba powstawiać, ale nie wiem do końca jak. Kod wstawiam poniżej.

#include <iostream>

int main()
{
    for( int x = 20; x >= 0; x-- )
    {
        for( int y = 1; y <= x; y++ )
             std::cout << "X";
        std::cout << std::endl;
    }
    return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 5 lutego 2017 przez vector Dyskutant (8,280 p.)
wybrane 6 lutego 2017 przez ofnero
 
Najlepsza
#include <iostream>
 
int main()
{
    for( int x = 20; x >= 0; x-- )
    {
    	for( int y = 0; y < 20 - x; y++ )
    		std::cout << " ";
        for( int y = 1; y <= x; y++ )
            std::cout << "X";
		std::cout << std::endl;
    }
    return 0;
}

 

0 głosów
odpowiedź 5 lutego 2017 przez koczurekk Gaduła (3,420 p.)
edycja 5 lutego 2017 przez koczurekk

Po pierwsze warto napisać pomocniczą funkcję, generującą stringa z 'n' powtarzających się znaków.

std::string repeat(const char c, size_t count) {
	std::string result;
	result.resize(count);
	std::fill(result.begin(), result.end(), c);

	return result;
}

Teraz kiedy można napisać przejrzysty kod zostaje taka drobnostka:

int main() {
	for(auto x = 0u; x <= 20; ++x) {
		std::cout << repeat(' ', x) << repeat('x', 20 - x) << std::endl;
	}

	return 0;
}

Oczywiście można tu spekulować czy mowa o zagnieżdżonych pętlach, więc jeśli zadanie ma taki wymóg to lepiej wykorzystać bardziej oczywiste rozwiązanie jak np. to od @vector.

Podobne pytania

0 głosów
1 odpowiedź 92 wizyt
pytanie zadane 24 czerwca w C i C++ przez magda_19 Obywatel (1,820 p.)
0 głosów
2 odpowiedzi 2,718 wizyt
pytanie zadane 22 stycznia 2017 w JavaScript, jQuery, AJAX przez svyatogor92 Użytkownik (660 p.)
0 głosów
0 odpowiedzi 128 wizyt
pytanie zadane 20 września 2016 w C i C++ przez plkpiotr Stary wyjadacz (12,420 p.)
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

67,127 zapytań

114,075 odpowiedzi

241,783 komentarzy

47,030 pasjonatów

Przeglądających: 200
Pasjonatów: 16 Gości: 184

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...