em Posted July 10, 2014 Report Posted July 10, 2014 (edited) Vede?i ?i primele trei din serie. https://rstforums.com/forum/38933-easy-c-quest.rsthttps://rstforums.com/forum/40581-easy-c-quest-2-a.rsthttps://rstforums.com/forum/67006-easy-c-quest-3-a.rstNu se va da warn pentru redeschidere topic daca raspundeti acolo. Care crede?i c? este outputul la urm?toarele programe?(Se accepta si depinde sau nu va compila/rula)NU RULATI si postati rezultatele aici, nu despre asta este vorba. 1.#include <stdio.h>int main() { float x=16777216; printf("%.1f\n%.1f", x+1, x+2); return 0;}2.#include <stdio.h>int boss() { return 2;}int main() { printf("%d", sizeof(boss)); return 0;}3.#include <stdio.h>int main() { printf("%d", 2+2/2);}4.#include <stdio.h>int main() { http://ctf.rstforums.com/ printf("Soon"); return 0;} 5.#include <stdio.h>int main() { int a(31), b(337); printf("%d%d", a, ;} Edited July 10, 2014 by em Quote
askwrite Posted July 10, 2014 Report Posted July 10, 2014 1.16777217 si 16777218 2.23.24.Soon5.31337Cred, nu prea stiu c++ Quote
Active Members dancezar Posted July 10, 2014 Active Members Report Posted July 10, 2014 (edited) 5. eroare de compilare pentu ca nu exista functiile a si b cu parametri , gen trebuia int a(int c),b(int d)4. sintax error este pus http: in fata comentariului //3. 2/2=1+2=32. returneaza int deci trebuie sa fie sizeof(int) dar nu stiu cat e... //aberez nu e asa am gresit la 1 nu stiu sigur ce inseamna acel specificator, oricum e mai mult C asta .... Edited July 10, 2014 by danyweb09 Quote
Ganav Posted July 10, 2014 Report Posted July 10, 2014 1.printf("%.1f\n%.1f", x+1, x+2);Format strng-ul %.1f precizeaza ca numarul va fi afisat cu cel putin o zecimala dupa virgula. Numarul nostru este intreg si mai mic decat 8 octeti ca si valoare deci rezultatul va fi:16777217.016777219.02. Nu va compila deoarece functia nu este un tip. Putem declara un pointer la functie:#include <stdio.h>int boss() { return 2;}int main() { int (*boss_ptr)(int); boss_ptr = &boss; printf("%d", sizeof(boss_ptr)); return 0;}In cazul acesta rezultatul va fi 4(numarul de octeti pentru o adresa pe o masina x86).3. Rezultatul este 3. 4. Link-ul nu este o variabila bine definita, deci vom avea o eroare la compilare.5. Eroare de compilare a si b nu au fost definite ca si functii apriori. Quote
em Posted July 11, 2014 Author Report Posted July 11, 2014 1.printf("%.1f\n%.1f", x+1, x+2);Format strng-ul %.1f precizeaza ca numarul va fi afisat cu cel putin o zecimala dupa virgula. Numarul nostru este intreg si mai mic decat 8 octeti ca si valoare deci rezultatul va fi:16777217.016777219.0Aici am o oarecare rezerv? c? nu ai tri?at. Cum se face ca este o diferen?? de 2 între "x+1" ?i "x+2"? Quote
bcman Posted July 11, 2014 Report Posted July 11, 2014 1. 16777217.0 si 16777218.02. Nu sunt sigur, nu cred c? merge s? pui sizeof(functie), dar dac? merge ar afi?a 4.3. 34. Soon?tiu c? dac? la sfâr?itul liniei avem ":" nu d? eroare (restul nu e luat în considerare pentru c? e comentat). Am observat asta mai demult, din gre?eal?, dar nu ?tiu sigur explica?ia.5. 31337Nu trebuie s? fie func?ii, variabilele se pot defeni ?i astfel, nu doar folosind "=". Quote
Ganav Posted July 11, 2014 Report Posted July 11, 2014 Nu m-am uitat cu atentie este 16777218.0. Quote
lutulik Posted July 11, 2014 Report Posted July 11, 2014 1. 16777217.0 si 16777218.0 // %.1f -> afiseaza numarul cu o singura virgula2. Nu cred ca o sa compileze din cauza ca "sizeof" se aplica unei functii, sau va afisa sizeof(int) care e 43. 34. Ar trebui sa dea eroare.5. 31337 Quote
Byte-ul Posted July 11, 2014 Report Posted July 11, 2014 (edited) 1. dupa numaru ala (2^24) floatu nu se mai incrementeaza din ce imi aduc aminte de la metode numerice... e o problema cu mantisa sau cum se numea chestia aia. Nush ce afiseaza, ar trebui 16777216.0 16777216.02. nu ai voie sa pui sizeof la o functie (din cate stiu)3. 34. compilatorul crede ca http: este un label dala (sau cum se numeste la care te duci cu goto) si // comentariu. Deci compileaza bine si afiseaza "Soon"5. initializare cu constructor... 31337 Edited July 11, 2014 by Byte-ul Quote
nedo Posted July 11, 2014 Report Posted July 11, 2014 (edited) 1: 16777217.0 si 16777218.02: 4(marimea unui pointer)3: 3( | are precedenta in fata lui +)4: Nu va compila, undefined reference to http, expected "something" before :, expected ; before printf5: 31337Le. Dupa ce am verificat am gresit 2, intrebarea numarul 2 si numarul 4.Ca tot intreba cineva mai sus, explicatia pentru 4 este "goto and labels", cautati-l si o sa intelegeti Edited July 11, 2014 by nedo Auto corectare. Quote
Nytro Posted July 11, 2014 Report Posted July 11, 2014 La mine, CodeBlocks + MinGW, la 1:16777217.016777218.0Am gresit pe 2. In C afiseaza "1". In C++ cu "-fpermissive" afiseaza tot "1". Nu am nici cea mai mica idee de ce.Restul le-am stiut. Quote
em Posted July 11, 2014 Author Report Posted July 11, 2014 4. Soon?tiu c? dac? la sfâr?itul liniei avem ":" nu d? eroare (restul nu e luat în considerare pentru c? e comentat). Am observat asta mai demult, din gre?eal?, dar nu ?tiu sigur explica?ia.In C exista etichete.gigi:goto gigi;acolo este vorba de eticheta http si apoi comentarii.http: //aici e un comentariu Quote