Rysowanie trójkątów w aplikacji konsolowej

0

(Programowanie w C)
Witam, chciałbym Was poprosić o pomoc w zrobieniu / wytłumaczeniu jak zrobić tego zadania
:screenshot-20221105152735.png
w takiej formie mam narysować w konsoli te trójkąty.
Udało mi się tylko jeden zrobić, a z resztą się już męczę 3 dzień
screenshot-20221105152825.png

#include <stdio.h>

int main()
{
    printf("Trojkat pusty lewy \n");

    int h;
    printf("Podaj h: \n");
    scanf("%d", &h);

    putchar('*');
    putchar('\n');

    for(int j = 0; j < h; j++)
    {
        for(int i = 0; i < 1; i++)
        {
            putchar('|');
        }
        for(int i = h; i > h - j; i--)
        {
            putchar(' ');
        }
        for(int i = 0; i < 1; i++)
        {
            putchar('\\');
        }
        printf("\n");
    }
    for(int j = 0; j < 1; j++)
    {
        putchar('*');
        for(int i = 0; i < h; i++)
        {
            putchar('-');
        }
        putchar('*');
        printf("\n");
    }

return 0;
}

Bardzo proszę, Pomóżcie mi :D

2
xKaruś123 napisał(a):

(Programowanie w C)
Witam, chciałbym Was poprosić o pomoc w zrobieniu / wytłumaczeniu jak zrobić tego zadania
:screenshot-20221105152735.png
w takiej formie mam narysować w konsoli te trójkąty.
Udało mi się tylko jeden zrobić, a z resztą się już męczę 3 dzień
screenshot-20221105152825.png

No to żeby zrobić np ostatni z tych trójkątów, wystarczy że weźmiesz swój aktualny kod, i wykonasz swoje pętle w odwrotnej kolejności (tzn zamień je miejscami, i przerób tą która rysuje slashe żeby była malejąca, a nie rosnąca).

5

Ależ nakombinowano!!!

#include <stdio.h>

int main()
{
	static const char tb[]=" -| /*";
	int size;
    printf("Podaj rozmiar: ");
    scanf("%d",&size);
	for(int y=0;y<size;++y,printf("\n"))
	{
		for(int x=0;x<size;++x)
		{
			int p=((y+x==size-1)<<2)|((x==0)<<1)|((y==0)<<0);
			printf("%c",tb[(p&(p-1))?5:p]);
		}
	}
	return 0;
}
3

Taka wskazówka. Używając printf("%*s", n, "") możesz wypisać dokładnie n spacji. Na przykład

#include <stdio.h>

int main() {
    int width = 8;

    printf("*\n");

    for(int i=0; i<width; i++) {
        printf("|%*s\\\n", i, "");
    }

    printf("*");
    for(int i=1; i<width+1; i++) {
        printf("-");
    }
    printf("*\n");
}

Inny przykład:

#include <stdio.h>

int main() {
    int size = 10;

    for(int i=0; i<size; i++) {
        printf("%*s+%*s\n", size-i-1, "", i-1, "");
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1