Witam, z nudów próbowałem "ulepszyć" program, który robiłem wcześniej na lekcji informatyki, do tworzenia choinki z "*" w c++. Wyszło mi coś naprawdę dziwnego, ale działa. Ktoś chciałby pomóc "ulepszyć" ten kod, jakoś go zrobić przejrzystym i poprawić działanie ogólne programu. Kod wklejam poniżej :
#include <iostream>
using namespace std;
const int N=3;
void choinka(int b)
{
int x=b;
x=(x/3)+1;
int c=x*2;
for(int i=0;i<N;i++)
{
for( int i = 1; i <= x; i++ )
{
if(b==3 or b==1)
{
for( int j = 1; j <= ((b*2) -i) + 2; j++ )
{
cout << " ";
}
for( int j = c; j <= (x*3) - c; j++ )
{
cout << " ";
}
for( int j = 1; j <= i * 2 - 1; j++ )
{
cout << "*";
}
cout<<endl;
}
else
{
for( int j = 1; j <= (b*2) -i; j++ )
{
cout << " ";
}
for( int j = c; j <= (x*3) - c; j++ )
{
cout << " ";
}
for( int j = 1; j <= i * 2 - 1; j++ )
{
cout << "*";
}
cout << endl;
}
}
x=x*2;
c=c*3;
}
}
void pien(int d)
{
if(d==3)
{
for(int i=0;i<=d;i++)
{
for(int i=0;i<(d*2);i++)
{
cout<<" ";
}
for(int i=0;i<d;i++)
{
cout<<"*";
}
cout<<endl;
}
}
else if(d==1)
{
for(int i=0;i<=d;i++)
{
for(int i=0;i<(d*2)+1;i++)
{
cout<<" ";
}
for(int i=0;i<d;i++)
{
cout<<"*";
}
cout<<endl;
}
}
else
{
if(d%2!=0)
{
for(int i=0;i<=d;i++)
{
for(int i=0;i<((d*2)-(d/2))-1;i++)
{
cout<<" ";
}
for(int i=0;i<d;i++)
{
cout<<"*";
}
cout<<endl;
}
}
else
{
for(int i=0;i<=d;i++)
{
for(int i=0;i<((d*2)-(d/2))-1;i++)
{
cout<<" ";
}
for(int i=0;i<d+1;i++)
{
cout<<"*";
}
cout<<endl;
}
}
}
}
int main()
{
int wys;
cout<<"Jaka ma byc wielkosc choinki? : "<<endl;
cin>>wys;
system("cls");
choinka(wys);
pien(wys);
return 0;
}