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).

此外,您不应对任何未初始化的值进行操作。在任何表达式中使用这些变量之前给它们适当的值,或者至少确保在应用这些变量之前获取用户输入。

您的订单有误。您按以下顺序进行:

  1. 检查我们是否完成(不正确,如您需要x == 0 && y == 0
  2. 读取用户输入
  3. 写入计算输出

你在计算输出前没有检查自己是否完整,所以先计算失败。

您需要在尝试操作之前检查 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;

}