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

Łamigłówki c++ (wzorek ze znaku '#')

VPS Starter Arubacloud
0 głosów
901 wizyt
pytanie zadane 16 lipca 2018 w C i C++ przez Sic Dyskutant (8,510 p.)

Witam tworzę program, który na wyjście ma wyglądać dokładnie tak:

 ########
    ######
      ####
         ##

Aktualnie napisałem taką pętle:

for(int i=1; i <= 4; i++)
        {
                for(int j=0; j <= (8-i)-(i-1); j++)
                        std::cout << "#";
                std::cout << "\n";
        }// #1 for

Wyjście wygląda tak:

########
######
####
##

Jaka część wyrażenia spowoduje, że będzie usuwało mi element rozpoczynający linie?

Proszę o podpowiedź

1
komentarz 16 lipca 2018 przez niezalogowany
Nie rozumiem pytania
komentarz 16 lipca 2018 przez Sic Dyskutant (8,510 p.)
Pytanie kieruje do warunku wewnętrznej pętli for. Pętla ma usuwać 2 elementy, kratki w każdej kolejnej linii(pierwszy i ostatni). Mam Problem bo nie wiem jaki powinien być do tego warunek. Wiem jak zmniejszać ilość kratek na końcu lini, jednak nie wiem jak usuwać je od początku lini.
3
komentarz 16 lipca 2018 przez niezalogowany
Ale czemu usuwać? Nie lepiej dodaj jeszcze jedną pętlę wypisującą na początku każdej linii spacje?
komentarz 16 lipca 2018 przez Sic Dyskutant (8,510 p.)

Dziękuję bardzo mi to pomogło.

Oto kod rozwiązujący problem:

for(int i=1; i <= 4; i++)
        {
                for(int j=0; j <= (8-i)-(i-1); j++)
                        std::cout << "#";
                std::cout << "\n";
                for(int g=0; g<=i-1;g++)
                        std::cout << ' ';
        }// #1 for

 

2
komentarz 16 lipca 2018 przez Tnifey Pasjonat (24,190 p.)

dlaczego wszyscy używają tyle pętli :P pętla tu, pętla tam, a później mówią "komputer wolno chodzi" :P jedna pętla w zupełności wystarczy, a znając życie to i da się bez pętli :P

http://cpp.sh/97ngv

int halfOfLength = 10;
for(int i = halfOfLength; i > 0; i--)
{
    std::cout << std::string(halfOfLength - i, ' ') << std::string(i * 2, '#') << "\n"; 
}

http://www.cplusplus.com/reference/string/string/string/

2
komentarz 16 lipca 2018 przez j23 Mędrzec (194,920 p.)
edycja 16 lipca 2018 przez j23

pętla tu, pętla tam, a później mówią "komputer wolno chodzi" :P

No, jak będą pisać kod, jaki zaprezentowałeś, to komputer na pewno będzie wolno chodził.

 

Już lepiej użyć std::fill_n.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 190 wizyt
0 głosów
1 odpowiedź 340 wizyt
0 głosów
4 odpowiedzi 2,210 wizyt
pytanie zadane 8 października 2015 w C i C++ przez Kondzio Mądrala (5,230 p.)

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...