em Posted January 22, 2012 Report Posted January 22, 2012 E?ti la un interviu ?i ?i se pun în fa?? liniile de cod.int x,y;scanf("%d"+scanf("%d%d", &x, &y));Merge? Dac? da, de ce ?i ce face? Dac? nu merge ce eroare arunc? compilatorul?R?spunsuri aici. Nu compila?i ?i da?i r?spunsul, nu c?uta?i pe Google, nu da?i copy/paste la r?spunsurile altora. 1 Quote
Zamolxis666 Posted January 22, 2012 Report Posted January 22, 2012 Merge. scanf intoarce numarul de elemente care au fost citite cu succes.Pe aceeasi tema:int a = 1;int b = 2;printf("%d", a+++;ce se afiseaza in urma executiei functiei printf? Quote
pr00f Posted January 22, 2012 Report Posted January 22, 2012 int x,y;scanf("%d"+scanf("%d%d", &x, &y));Merge, ar trebui s? citeasc? ceva de la tastatur?.Merge. scanf intoarce numarul de elemente care au fost citite cu succes.Pe aceeasi tema:int a = 1;int b = 2;printf("%d", a+++;ce se afiseaza in urma executiei functiei printf?M? bate gândul s? spun c? exist? doua posibilit??i, dar îmi amintesc clar lec?ia de la liceu unde înv??am ordinea în care erau citite comenzile (exprimarea pulii, dar în?elege?i). Ideea e c? se ia a cu valoarea ini?ial? (apoi se incrementeaz?, ++-urile sunt la final) ?i se adun? cu b. Quote
tjt Posted January 22, 2012 Report Posted January 22, 2012 Merge. scanf intoarce numarul de elemente care au fost citite cu succes.Pe aceeasi tema:int a = 1;int b = 2;printf("%d", a+++;ce se afiseaza in urma executiei functiei printf?Este vorba de modul in care sunt plasati operatorii de incrementare .Pentru x=a++ avem : x=a;a=a+1;Pentru x=++a avem;a=a+1;x=a;Va afisa : 3 Quote
Zamolxis666 Posted January 22, 2012 Report Posted January 22, 2012 Este vorba de modul in care sunt plasati operatorii de incrementare .Pentru x=a++ avem : x=a;a=a+1;Pentru x=++a avem;a=a+1;x=a;Va afisa : 3corect Quote
pr00f Posted January 22, 2012 Report Posted January 22, 2012 corectM? bate gândul s? spun c? exist? doua posibilit??i, dar îmi amintesc clar lec?ia de la liceu unde înv??am ordinea în care erau citite comenzile (exprimarea pulii, dar în?elege?i). Ideea e c? se ia a cu valoarea ini?ial? = 1 (apoi se incrementeaz?, ++-urile sunt la final) ?i se adun? cu b = 2 . 1 + 2 = 3?i vrei s? spui c? rezolvarea mea nu este corect? ? Quote
Krisler12™ Posted January 22, 2012 Report Posted January 22, 2012 Merge, ar trebui s? citeasc? ceva de la tastatur?.int x,y;scanf("%d"+scanf("%d%d", &x, &y));Nu trebuia sa fie virgula in loc de plus ?int x,y;scanf("%d",scanf("%d%d", &x, &y)); Quote
Nytro Posted January 22, 2012 Report Posted January 22, 2012 "dfsdfdsf" - sir de caractere, pointer la sir de caractere terminat in NULL"%d" - idem mai sus"%d" + 2 - idem mai sus, +2 la adresa pointerului Quote
Krisler12™ Posted January 22, 2012 Report Posted January 22, 2012 Si-atunci practic ce face scanf("%d"+scanf("%d%d", &x, &y)); ? Quote
Nytro Posted January 22, 2012 Report Posted January 22, 2012 E scanf, citeste. Returneaza 0 in caz de eroare, ceea ce probabil se intampla si aici, sau numarul de chestii citite.Aici, citeste "%d" + 2. Acel "%d" e in memorie % d NULL, deci practic e un: scanf(NULL); adica returneaza 0.Oricum nu e afisat nimic, dar asa functioneaza. 1 Quote