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

Połowa choinki w C++

Object Storage Arubacloud
0 głosów
6,364 wizyt
pytanie zadane 4 grudnia 2019 w C i C++ przez marzena12345 Użytkownik (770 p.)

Cześć, zaczęłam pisać program do zadania poniżej. Część już mam, tylko jak dokonać tego, żeby w każdej linijce pojawiała się o jedna gwiazdka więcej niż w poprzedniej ? U mnie wychodzi od razu podstawa i pień. 

#include <iostream>

using namespace std;

int main()
{
    int n;
    char znak;
    cin>>n>>znak;
    cout<<endl;
   for(int j=1; j<=n-1; j++)
    {cout<<znak;
    }

 for(int i=0; i<=n; i++)
    {cout<<znak<<endl;
    }
    return 0;
}

 

Napisz program, który dla zadanego n < 1001, narysuje połowę choinki o boku n, składająca się z dwóch krzaczków i nóżki. 

Input

Jedna liczba określająca długość każdego elementu choinki oraz jeden znak, z którego mają się składać elementy choinki.

Output

Choinka narysowana z danego znako o długości n każdego elementu.

Example1

Input:
3 *

Output:
*
**
***
*
**
***
*
*
*

2 odpowiedzi

+1 głos
odpowiedź 4 grudnia 2019 przez profesorek96 Szeryf (91,420 p.)

Proszę bardzo:

#include <iostream>
using namespace std;
void choinka(int n, char z)
{
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<i;j++)cout<<z;
		cout<<endl;
	}
}
int main() {
	int n;
	char znak;
	cin>>n>>znak;
	choinka(n,znak);
	choinka(n,znak);
	for(int i=0;i<n;i++)cout<<znak<<endl;
	
	return 0;
}

 

+1 głos
odpowiedź 4 grudnia 2019 przez tkz Nałogowiec (42,000 p.)
#include <iostream>
#include <string>

int main()
{
    unsigned n{0};
    std::cin>>n;
    char c;
    std::cin>>c;
    for(unsigned i = 1; i<=n; i++)
        std::cout<<std::string(i, c)<<'\n';
    for(unsigned i = 1; i<=n; i++)
        std::cout<<std::string(i, c)<<'\n';
    std::cout<<"*\n*\n*";
}

 

 

 


#include <iostream>
 
using namespace std;
 
int main()
{
    int n;
    char znak;
    cin>>n>>znak;
    cout<<endl; // po co przechodzisz w tym miejscu do nowej lini?
   for(int j=1; j<=n-1; j++) //tutaj zamien warunek konczacy, nie jest "zle", ale jest nieczytelnie
    {
        cout<<znak; //gdzie przechodzisz do nowej lini by uzyskac efekt drzewka?
    }
 
 for(int i=0; i<=n; i++) //dlaczego te pelte się roznia?
    {
        cout<<znak<<endl;
    }
    return 0;
}


#include <iostream>
 
using namespace std;
 
int main()
{
    int n;
    char znak;
    cin>>n>>znak;
    cout<<endl;
    for(int c = 0; c<2;c++)
        for(int i = 0; i < n; i++)
        {
            for(int j = 0; j <= i; j++)
                std::cout<<znak;
            std::cout<<endl;
        }
    std::cout<<'*'<<endl<<'*'<<endl<<'*'<<endl;

    return 0;
}

 

Moje rozwiązanie, Twoje z pytaniami i Twoje poprawione. 

komentarz 4 grudnia 2019 przez marzena12345 Użytkownik (770 p.)
Pierwsza pętla tworzyła "***"

Druga tworzyła pień choinki, w Twoim kodzie pień choinki jest stały, a powinien on być taki jak wskazania liczba na początku. U mnie ten pień działa, gorzej z górą.
komentarz 5 grudnia 2019 przez tkz Nałogowiec (42,000 p.)

Z polecenia to nie wynika. 

#include <iostream>
#include <string>
 
int main()
{
    unsigned n{0};
    std::cin>>n;
    char c;
    std::cin>>c;
    for(unsigned i = 1; i<=n; i++)
        std::cout<<std::string(i, c)<<'\n';
    for(unsigned i = 1; i<=n; i++)
        std::cout<<std::string(i, c)<<'\n';
    for(unsigned i = 1; i<=n; i++)
       std::cout<<"*\n";
}

#include <iostream>
  
using namespace std;
  
int main()
{
    int n;
    char znak;
    cin>>n>>znak;
    cout<<endl;
    for(int c = 0; c<2;c++)
        for(int i = 0; i < n; i++)
        {
            for(int j = 0; j <= i; j++)
                std::cout<<znak;
            std::cout<<endl;
        }
    for(int c = 0; c<n;c++)
        std::cout<<'*'<<endl;
 
    return 0;
}

Poprawiłem. 

komentarz 5 grudnia 2019 przez marzena12345 Użytkownik (770 p.)
a no przepraszam, w oryginale jest drugi przykład z dwoma znakami, gdzie jest podwójny pień, więc to widać, tutaj to obcięłam, żeby skrócić treść i rzeczywiście ciężko się domyślić.

dzięki

Podobne pytania

0 głosów
1 odpowiedź 644 wizyt
pytanie zadane 13 lutego 2021 w C i C++ przez Fie Nowicjusz (120 p.)
0 głosów
1 odpowiedź 7,441 wizyt
pytanie zadane 17 października 2016 w C i C++ przez Kubiaczek007 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 2,677 wizyt
pytanie zadane 3 października 2018 w Java przez dzideos Obywatel (1,320 p.)

92,579 zapytań

141,428 odpowiedzi

319,654 komentarzy

61,962 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...