[ Qkko @ 18.05.2010. 08:33 ] @
Zadatak treba uraditi preko for petlje. Korisnik treba da unese broj redova a onda u slucaju:
Code:

1 red - A

2 reda - BAB
          A

3 reda - CBABC
          BAB
           A

4 reda - DCBABCD
          CBABC
           BAB
            A

itd.

Nadam se da ste me svatili, pokusao sam uraditi ali mi nije uspjelo.
Unaprijed, Hvala.

[Ovu poruku je menjao Mihajlo Cvetanović dana 18.05.2010. u 13:09 GMT+1]

[Ovu poruku je menjao Mihajlo Cvetanović dana 18.05.2010. u 13:09 GMT+1]
[ Mihajlo Cvetanović @ 18.05.2010. 12:07 ] @
Postavi ovde taj pokušaj, pa da krenemo od toga.
[ Mali Misha @ 11.06.2010. 17:51 ] @
Da znaš da si me potakao sa ovim "preko for petlje", jer taj deo postavke izgleda kao da problem treba rešiti upotrebom samo jedne for-petlje. Da ne bi bilo da sam ti rešenje postavio pre nego što se videlo da si i sam nešto kako treba pokušao, zapetljao sam kod (neće ti korisiti za svrhe prostog prepisivanja):

Code:
#include <stdio.h>

#define W (2*n-1) // width
#define C (i % W) // current column

void solve(int n)
{int i,val;for(i=
0;(!C&&i)?putchar
(10):0,putchar(((
val=(C<n?C:2*n-C-
2)-i/W),val)<0?'\
 ':'A'+val),i<W*n
;i++);}

int main(void)
{
    solve(20);
    return 0;
}


Rešenje je u tome da se celi iscrtani deo posmatra kao slovni pravougaonik dimenzija , te da se nađe formula po kojoj se za svako polje dobije odgovarajuće slovo. Ovde je to urađeno tako da se za sva slova koja treba prikazati dobija nenegativan broj, koji se sabira sa 'A'. Sa druge strane, svako polje na koje treba upisati belinu biva mapirano sa negativnim brojem. Da bi napravio ovu funkciju, pođi od toga kako vertikalna i horizontalna pozicija polja za neko slovo umanjuju odnosno uvećavaju broj kojeg treba dodati na 'A'.