LINUX.ORG.RU

Проблемы с g++

 


0

1

Простая программа:

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    double value = atan(1/6)*180/M_PI;   
    cout << value << endl;  // должно вывести 9,462322208 !!!
    return 0;
}

Компилирую g++ blabla.cpp

Запускаю из консоли, результат - 0; компилирую снова, запускаю, результат - 0; компилирую снова, запускаю, результат - 0,9462322208.

Тоже самое в отладчике QtCreator'а, то 0 получается, то 0,9462322208. Переставил build-essential, теперь после перекомпиляции, программа выводит 9,462322208.

И это не первый раз, один и тот же код работает по разному, после каждой последующей компиляции. Никто не встречался с таким поведением gcc?

P.S. OC Ubuntu 12.10 (ядро 3.7), gcc 4.7.2



Последнее исправление: Grease (всего исправлений: 1)

Ты ведь в курсе, что 1/6 == 0 ?

trex6 ★★★★★
()
Ответ на: комментарий от static_lab

Спасибо, это я упустил из вида. Теперь все работает.

Grease
() автор топика

Переименуй тред в «Проблемы с Grease».

Pavval ★★★★★
()

протестил - всегда 0. g++ v4.8.0

а сделай g++ -S blabla.cpp и посмотри в blabla.s
заодно и нам покажи, который не 0 печатает.

dib2 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.