Проблема при преобразовании градуса Цельсия в градус Фаренгейта
I am getting wrong output for below code. int C,i; for (i=0;i<=300;i=i+20) { C=(5/9)*(i-32); printf("%d %d\n",i,C); }
Что я уже пробовал:
but below code works fine. Confused why it is not working! Any help? int C,i; for (i=0;i<=300;i=i+20) { C=(5*(i-32)/9); printf("%d %d\n",i,C); }
phil.o
В первой версии 5/9 переводится в ноль (целочисленное деление). Таким образом, операция фактически равна 0 * (i - 32), что всегда дает ноль.
Во второй версии вы делаете деление в конце, что дает ненулевой результат, но это не означает, что этот результат полностью точен.