» »

[C] Izris očrtanega pravokotnika

[C] Izris očrtanega pravokotnika

N-E-O ::

Moja naloga je izrisati (z zvezdicami) očrtani pravokotnik, kateremu na začetku podamo širino a in višino b. Za sam izpis je dovoljeno uporabiti NATANČNO 2 zanki (for,do,while) in nobenega if stavka!

Izpis znam sprogramirati z dvema for zankama in enim if stavkom. Ne uspe mi kodo skrčiti na zgolj 2 zanki. Baje, da se da zadevo rešiti s funkcijami (samo znotraj njih so pa spet potrebne zanke ne?). Ideje?
del kode, ki izriše pravokotnik
Follow the white rabbit.

r5r ::

Osebno bi zadevo rešil s funkcijo s tremi parametri {prvi in zadnji znak, prostor vmes, znak vmes}.
Program prvo kliče funkcijo { * , širina - 2 , * }. Nato z zanko, ki se ponovi za {višina - 2}, kliče isto funkcijo { *, širina - 2 , '' }. Nato pa še enkrat ponoviš tisto prvo.

Upam, da razumeš.
And it makes me wonder.

luli ::

Kaj je očrtani pravokotnik?

r5r ::

Verjetno je potrebno narisati obseg pravokotnika, torej označiti samo stranice.

Beseda očrtani ni najbolj primerna, saj se to uporablja le v povezavi z drugimi liki, ko želimo lik postaviti tako, da je že podan lik v notranjosti našega (pravokotnika).
And it makes me wonder.

-_- ::

Če je dovoljeno uporabiš ternary operator. Podobno kot IF stavek. Koda tega programa.

N-E-O ::

@r5r

Hvala za tale nasvet. Sem naredil zdaj z dvema for zankama.
Razen, če vnesem kot širino ali višino vrednost 1, ne izriše pravilno. Samo mislim, da to se ne da rešit ne da bi uporabil dodaten if stavek.
Follow the white rabbit.

r5r ::

Če zgornje zvezdice pomenijo samo samo rob, potem tisto odštevanje za 2 odstrani.
And it makes me wonder.

llc ::

Kaj pa tkole (samo 1 for zanka, brez if stavkov):

int a = 10, b = 5;

int y;

char *line = malloc(a + 3);
memset(line, '*', a + 2);
line[a + 2] = 0;

printf("%s\n", line);
for (y = 0; y < b; y++)
printf("*%*c*\n", a, ' ');
printf("%s\n", line);

free(line);

Shinobi ::

memset dejansko je for zanka, ce smo natancni. Pa dvomim, da uporabljajo memset v soli. Izvedljivo vsekakor je.

gumby ::

if lahko nadomestis z while;)

edit: for tudi, seveda... se na eleganten nacin resis omejitev naloge>:D

edit2: zdaj vidim, da je while tud prepovedan... ups
my brain hurts

Zgodovina sprememb…

  • spremenil: gumby ()

Jakob35 ::

ja ej a mi kdo pove v katerm jeziku vi to delate?

llc je izjavil:

Kaj pa tkole (samo 1 for zanka, brez if stavkov):

int a = 10, b = 5;

int y;

char *line = malloc(a + 3);
memset(line, '*', a + 2);
line[a + 2] = 0;

printf("%s\n", line);
for (y = 0; y < b; y++)
printf("*%*c*\n", a, ' ');
printf("%s\n", line);
soeiv katermu jeziku je to

free(line);

Zgodovina sprememb…

  • spremenilo: Jakob35 ()

roba87 ::

C

Jakob35 ::

roba87 je izjavil:

C


a v c++ al kaj

mism no a se da to t v c++

Zgodovina sprememb…

  • spremenilo: Jakob35 ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Algoritmi - diagrami poteka

Oddelek: Šola
222063 (1764) lebdim
»

izpisovanje datotek in sortiranje

Oddelek: Programiranje
6726 (548) cobrica
»

Nemorem rešit ene naloge z c++ (sem začetnik) (strani: 1 2 )

Oddelek: Programiranje
6810058 (5796) technolog
»

C strukture, kazalci naloga pomoc

Oddelek: Programiranje
51392 (1287) DavidJ
»

[C] čuden izpis iz txt dat. na zaslon

Oddelek: Programiranje
121621 (1358) l0g1t3ch

Več podobnih tem