Last week we had a local Contest available here (statements only in portuguese), and I was surprised when the easiest problem was getting a lot of Wrong Answers on test 1. All of them seemed correct, gave the correct output locally and were using GNU C11. For some reason, re-submitting the same code in GNU C++ gave AC. Why?
Problem Statement
Given the formula of gravitational attraction $$$F = \frac{G\cdot M_1 \cdot M_ 2}{d^2}$$$, find the value of $$$G$$$ given the mass of the 2 objects, the force and their positions on space (which is only a line).
The code
After seeing this, I made an announcement for people to submit their problem using GNU C++ and a ton of AC came in... as a setter I was frustrated by such a bug and want to know why that happened :(
Auto comment: topic has been updated by NaimSS (previous revision, new revision, compare).
As far as I see in custom invocation, the following code:
on the input
1.00
prints0.000000
. On the other hand, people had no troubles reading doubles in C not so long ago.Can't found any evidence that
lf
is correct specification, but standard clearly says thatf
must work fine (for printf, not scanf)OK, found that
%lf
must have same behavior as%f
but in CFs compiler%lf
somehow not working (either bug or not implemented in gcc 5.1)Again with scanf there is no problem, problem in printf http://port70.net/~nsz/c/c11/n1570.html#7.21.6.1p7