C++ 中的浮点异常?
Floating Point Exception in C++?
我正在编写一个简单的程序来执行整数除法并显示余数。我正在尝试让程序连续运行 运行,直到用户输入 0 0。程序确实在用户输入 0 0 之后停止,但在它每次都说 "Floating point exception" 之前不会停止。这是代码:
#include <stdio.h>
int main(){
int x;
int y;
while (1){
if (x && y == 0)
break;
else
scanf ("%i %i", &x , &y);
printf("%i %i / %i\n" , x / y , x % y, y);
}
return 0;
}
if (x && y == 0)
并不像您想象的那样。你的意思可能是 if (x == 0 && y == 0)
.
此外,您不应对任何未初始化的值进行操作。在任何表达式中使用这些变量之前给它们适当的值,或者至少确保在应用这些变量之前获取用户输入。
您的订单有误。您按以下顺序进行:
- 检查我们是否完成(不正确,如您需要
x == 0 && y == 0
)
- 读取用户输入
- 写入计算输出
你在计算输出前没有检查自己是否完整,所以先计算失败。
您需要在尝试操作之前检查 0:
#include <stdio.h>
int main(){
int x;
int y;
while (1){
scanf ("%i %i", &x , &y);
if (x == 0 && y == 0)
break;
printf("%i %i / %i\n" , x / y , x % y, y);
}
return 0;
}
我正在编写一个简单的程序来执行整数除法并显示余数。我正在尝试让程序连续运行 运行,直到用户输入 0 0。程序确实在用户输入 0 0 之后停止,但在它每次都说 "Floating point exception" 之前不会停止。这是代码:
#include <stdio.h>
int main(){
int x;
int y;
while (1){
if (x && y == 0)
break;
else
scanf ("%i %i", &x , &y);
printf("%i %i / %i\n" , x / y , x % y, y);
}
return 0;
}
if (x && y == 0)
并不像您想象的那样。你的意思可能是 if (x == 0 && y == 0)
.
此外,您不应对任何未初始化的值进行操作。在任何表达式中使用这些变量之前给它们适当的值,或者至少确保在应用这些变量之前获取用户输入。
您的订单有误。您按以下顺序进行:
- 检查我们是否完成(不正确,如您需要
x == 0 && y == 0
) - 读取用户输入
- 写入计算输出
你在计算输出前没有检查自己是否完整,所以先计算失败。
您需要在尝试操作之前检查 0:
#include <stdio.h>
int main(){
int x;
int y;
while (1){
scanf ("%i %i", &x , &y);
if (x == 0 && y == 0)
break;
printf("%i %i / %i\n" , x / y , x % y, y);
}
return 0;
}