Я написал рекурсивную функцию в C, чтобы обратить целое число (123 -> 321), которое отлично работало, когда я запускал его на своем Mac, но ведет себя странно, когда мой инструктор запускал его на ней компьютер под управлением Windows.C-программа, дающая разные результаты по OSX и окнам
int rev(int num)
{
int base;
if (num < 10) return (num);
base = pow(10,(int)log10(num));
return(rev(num/10)+num%10*base);
}
К примеру, на OSX вызова Rev (8765) возвращает 5678, на Windows, Rev (8765) возвращает 5672. У меня нет доступа к компьютеру Windows, чтобы попытаться запустить программу в режиме отладки, поэтому мне было трудно попытаться угадать, в чем проблема. Я был бы очень признателен за понимание!
Окружающая среда:
Я использую с помощью OSX 10.8 и GCC 4.2. Я почти уверен, что мой инструктор использует MinGW в качестве своего компилятора.
Какой компилятор использовался на стороне Windows? – kmort
Она использует Dev C++, и я думаю, что MinGW поставляется с этим по умолчанию. – ezig
Не используйте плавающие точки для таких вещей, если вы не являетесь экспертом по численному анализу. –