Hej, chce narysować drzewko z gwiazdek w zależności od wysokości.
np.
Wymiar: 5
OOOO*OOOO
OOO***OOO
OO*****OO
O*******O
*********
Niestety mam taki problem, że nie potrafię sprawić by a i b czyli zmienne pomocnicze rosły w odpowiednim tempie.
Roboczo, bez użycia zmiennych, kod wygląda tak (no i działa, ale wiadomo, że dla większych drzewek już nie bo odejmuję "ręcznie"):
#include <stdio.h>
int main()
{
int wymiar;
printf("Wymiar:\n");
scanf("%d",&wymiar);
for(int i=1;i<=wymiar;i++) //wysokosc
{
for(int j=1;j<=2*wymiar-1;j++) //szerokosc
{
if(i==wymiar||j==wymiar)
{
printf("*");
}
else if(i==wymiar-1 && j<=2*wymiar-2 && j>1)
{
printf("*");
}
else if(i==wymiar-2 && j<=2*wymiar-3 && j>2)
{
printf("*");
}
else if(i==wymiar-3 && j<=2*wymiar-4 && j>3)
{
printf("*");
}
else if(i==wymiar-4 && j<=2*wymiar-5 && j>4)
{
printf("*");
}
else if(i==wymiar- 5 && j<=2*wymiar-6 && j>5) //etc..
{
printf("*");
}
else
{
printf("O");
}
}
printf("\n");
}
return 0;
}
Jako że warunki w ifach rosną co jeden, to zależało mi na podstawieniu za te liczby zmienne, niestety nie potrafię ich zainkremetnowac.
np:
#include <stdio.h>
int main()
{
int wymiar;
printf("Wymiar:\n");
scanf("%d",&wymiar);
int a=1; //zmienne pomocnicze
int b=2;
for(int i=1;i<=wymiar;i++,a++,b++) //wysokosc
{
for(int j=1;j<=2*wymiar-1;j++) //szerokosc
{
if(i==wymiar||j==wymiar)
{
printf("*");
}
else if(i==wymiar-a && j<=2*wymiar-b && j>a)
{
printf("*");
}
else
{
printf("O");
}
}
printf("\n");
}
return 0;
}
Próbowane było na wiele sposobów, niestety nieskutecznie.
Także zwracam się z prośbą o pomoc : /