România
Roportal.ro

stiva

Început de dflor, Mie 16 apr 2008 · 0 răspunsuri · 2.424 vizualizări

dflor3 mesaje#1

Se da programul:

#include <stdio.h>

char s[5],*f,*p,*m=s+5;

void push(int i){

*p=i+ '0';

p++;

if (p>=m) p=s;

}

char pop(){

char c=*f;

f++;

if (f>=m) f=s;

return c;

}

void main(){

int i;

p=f=s;

for(i=1;i<=3;i++) push(i);

printf("%c",pop()); scanf;

push(i);

for(i=0;i<5;i++) printf("%c", s);

}

Acest program afiseaza 11234.

Daca in primul for din main i<=6, afiseaza 667345.

Prima valoare este cea intoarsa de pop(), dar daca pentru valoarea 6 (i<=6), gasesc o logica, pentru 1 (i<=3), nu inteleg de ce.

De asemenea, nu inteleg de ce printf afiseaza acele valori si nu-mi explic numarul lor (4 valori daca i<=3, 5 daca i<=6)

← Înapoi la Programare