pusty trojkat

Odpowiedz Nowy wątek
2015-02-08 17:46
Panix
0

Narysowalem trojkat pusty w srodku. Da się to jakoś uprościć? Wykonac to w lepszy sposob? Bardziej zaawansowany?

 #include <stdlib.h>

int main()
{
    int i=0;
    int j=0;

    for(i=0; i<20; i++){
        for(j=0; j<20; j++)
    if(j<=i && j>i-1 || j==0 || i==19)
        printf("1");
    else
        printf(" ");
    printf("\n");
    }
    return 0;
}

Pozostało 580 znaków

2015-02-08 17:52
0

jedyne co widzę z outputu to to, że dla takiego trójkąta wystarczy if(j == i || j == 0 || i == 19)

edit: pewnie też da się to zrobić na 1 pętli, ponieważ wiersze zmieniają się jednostajnie

edytowany 1x, ostatnio: gośćabc, 2015-02-08 17:56

Pozostało 580 znaków

2015-02-08 17:59
Panix
0

A jak to zrobić w jednej petli bo nie mam pojecia. Chodzi mi tylko o warunki

Pozostało 580 znaków

2015-02-08 18:35
1

mogę Ci jedynie pokazać w c++ (z opisem), jaki algorytm zastosowałem, przerzuć sobie to na c

#include <iostream>
#include <string>

void printTriangle(int rows);

int main()
{
    printTriangle(55);

    return 0;
}

void printTriangle(int rows)
{
    std::cout << "1\n";                     // wyprintuj czubek
    std::string middles = "11\n";           // zmienna do zarządzania środkiem
    auto max = rows - 2;                    // liczba iteracji bez czubka i maxa
    for(auto i = 0 ; i < max ; ++i) {
        std::cout << middles;
        middles.insert(1, 1, ' ');          // dodaj spację na 2 miejsce w stringu
    }
    std::cout << std::string(rows, '1');    // wyprintuj max
}

http://melpon.org/wandbox/permlink/U7vecYZHmDVJJR5v

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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