[ bojanum @ 05.02.2021. 21:57 ] @
Pozdrav svima, da li se ovde moze predvideti
koju ce vrednost dobiti celobrojna promenljiva d ?

int main()
{
long d;
double b=1262.845986;
d=printf("%lf",b);
return 0;
}
[ Branimir Maksimovic @ 05.02.2021. 22:12 ] @
Na kom kompajleru?
[ bojanum @ 05.02.2021. 22:21 ] @
Koristio sam CodeBlocks, online c...rezultat je isti
dobijam da je d=11...mene interesuje da li sam
mogao nekako da predvidim da ce biti 11...
Kao da broji karaktere broja b...?

[ Burgos @ 05.02.2021. 22:56 ] @
printf vraća broj ispisanih karaktera. Kako %lf ispisuje double vrednost sa šest cifri nakon decimalne tačke, odgovor je 11 karaktera.

https://linux.die.net/man/3/printf
[ Branimir Maksimovic @ 06.02.2021. 05:02 ] @
U ovom slucaju nije includovan <stdio.h> pa zavisi od kompajlera dal ce da radi il ce da zvekne.
Kako je potpis printf int printf(const char*,...) moze se desiti da neki kompajler nije pametan
pa ovo interpretira kao long printf(const char*, double); sto ce dovesti do problema prilikom
interpretacije parametara pa moze dati nepredvidljive rezultate...