Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Unos broja redova

[es] :: C/C++ programiranje :: Unos broja redova

[ Pregleda: 1595 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Qkko

Član broj: 259296
Poruke: 3
188.124.198.*



Profil

icon Unos broja redova18.05.2010. u 08:33 - pre 168 meseci
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]
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Unos broja redova18.05.2010. u 12:07 - pre 168 meseci
Postavi ovde taj pokušaj, pa da krenemo od toga.
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
92.244.138.*

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Unos broja redova11.06.2010. u 17:51 - pre 167 meseci
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'.
Ipak se ++uje.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Unos broja redova

[ Pregleda: 1595 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.