NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: programování v C - trojúhelník

V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Peta
Člen
Avatar
Peta:21.10.2015 22:54

Ahoj, nevíte někdo jak napsat program, aby trojúhelník nebyl vyplněný, ale byl tam jen jeho obvod?

#include <stdio.h>
#include<stdlib.h>
int main()
{
        int a, b, r;
        printf("Zadejte velikost: ");
        scanf_s("%d", &r);
        for (a = 1; a <= r; ++a)
        {
                for (b = 1; b <= a; ++b)
                {
                        printf(" * ");
                }

                printf("\n");
        }
        return 0;
}
 
Odpovědět
21.10.2015 22:54
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Peta
Martin Dráb:21.10.2015 22:59

Co něco na tento způsob? Prostě piš hvězdičky jenom na krajích (což odpovídá krajním případům v cyklech).

#include <stdio.h>
#include<stdlib.h>
int main()
{
        int a, b, r;
        printf("Zadejte velikost: ");
        scanf_s("%d", &r);
        for (a = 1; a < r; ++a)
        {
                printf(" * ");
                for (b = 2; b < a; ++b)
                        printf("   ");

                printf(" * \n");
        }

         for (b = 1; b <= r; ++b)
             printf(" * ");

        return 0;
}
Nahoru Odpovědět
21.10.2015 22:59
2 + 2 = 5 for extremely large values of 2
Avatar
Peta
Člen
Avatar
Odpovídá na Martin Dráb
Peta:21.10.2015 23:08

Mělo by to vypadat nějak takhle např. pro číslo 4

*
**
* *
****
 
Nahoru Odpovědět
21.10.2015 23:08
Avatar
Jozef
Člen
Avatar
Odpovídá na Peta
Jozef:21.10.2015 23:20

Niečo takéto?

#include <stdio.h>
#include<stdlib.h>
int main()
{
        int a, b, r;
        printf("Zadejte velikost: ");
        scanf_s("%d", &r);
        for (a = 1; a <= r; ++a)
        {
                for (b = 1; b < a; ++b)
                {
                    if(b == 1 || b == a - 1)
                        printf("*");
                    else
                        printf(" ");

                }
                printf("\n");
        }
        for(b = 1; b <= r; b++)
                    printf("*");
        return 0;
}
Editováno 21.10.2015 23:21
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
21.10.2015 23:20
I'm not afraid to die on a treadmill
Avatar
Peta
Člen
Avatar
Odpovídá na Jozef
Peta:21.10.2015 23:26

Myslím, že ano. Děkuji za pomoc.

 
Nahoru Odpovědět
21.10.2015 23:26
Avatar
Jozef
Člen
Avatar
Odpovídá na Peta
Jozef:21.10.2015 23:29

Nie je zač.

Nahoru Odpovědět
21.10.2015 23:29
I'm not afraid to die on a treadmill
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.