C ++中的浮点异常?

时间:2015-02-05 18:20:49

标签: c++ floating-point-exceptions

我正在编写一个执行int division的简单程序并显示余数。我试图让程序连续运行,直到用户输入0 0.程序在用户输入0 0之后停止,但不是在它说“#34;浮点异常"每一次。这是代码:

#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;

}

3 个答案:

答案 0 :(得分:1)

您的订单不正确。您按此顺序执行此操作:

  1. 检查我们是否完成(错误地,您需要x == 0 && y == 0
  2. 阅读用户输入
  3. 写入计算输出
  4. 在计算输出之前,您不会检查是否完整,因此计算首先失败。

答案 1 :(得分:0)

if (x && y == 0)并不能按照您的想法行事。你可能意味着if (x == 0 && y == 0)

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

答案 2 :(得分: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;

}