【发布时间】:2014-01-30 04:33:54
【问题描述】:
我用 C 语言编写了一个递归函数来反转一个整数 (123 -> 321),当我在我的 Mac 上运行它时它运行良好,但当我的导师在她运行 Windows 的计算机上运行它时表现奇怪。
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 端使用了哪个编译器?
-
她使用 Dev C++,我认为 MinGW 默认自带。
-
除非您是数值分析专家,否则不要在此类事情上使用浮点数。
-
如果这是 slashdot,那么回复将是 - “你对 M$windoze 有什么期望?”
标签: c macos compiler-construction