我有一个用 C 编写的程序,在 Xcode 4.6 中运行,其中一个函数根据用户输入将两个浮点数相除。出于某种原因,当我尝试以正确的顺序进行除法(代码示例 1)时,程序会暂停并以看似无休止的循环打开lldb
调试器,并且当我尝试反转除法时,结果始终为零(代码示例 2)。
示例 1 代码:
float num2, num1;
int main() {
scanf("%f",&num1);
scanf("%f",&num2);
num2 = num1/num2;
printf("%f",num2);
}
样本 1 输出:
4
2 // user inputs calculation
(lldb) // program keeps printing this indefinitely
示例 2 代码:
float num2, num2
int main() {
scanf("%f",&num1);
scanf("%f",&num2);
num2 = num2/num1;
printf("%f",num2);
}
样本 2 输出:
4
2 // user inputs calculation
0 // since calculation is inverted, input was interpreted as 2/4, but rather than returning 0.5, the program returns 0.
不知道为什么会发生这种情况,或者如何解决它。这里的任何人都有类似的问题并找到了解决方法?