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

Połowa choinki w C++

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
6,962 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,400 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,060 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,060 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ź 828 wizyt
pytanie zadane 13 lutego 2021 w C i C++ przez Fie Nowicjusz (120 p.)
0 głosów
1 odpowiedź 7,926 wizyt
pytanie zadane 17 października 2016 w C i C++ przez Kubiaczek007 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 3,112 wizyt
pytanie zadane 3 października 2018 w Java przez dzideos Obywatel (1,320 p.)

93,444 zapytań

142,436 odpowiedzi

322,698 komentarzy

62,806 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

...