-1

我正在编写一个简单的程序来进行 int 除法并显示余数。我试图让程序连续运行,直到用户输入 0 0。程序确实在用户输入 0 0 之后停止,但在每次都说“浮点异常”之前不会停止。这是代码:

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

}
4

3 回答 3

1

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

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

在计算输出之前你没有检查你是否完成,所以计算首先失败。

于 2015-02-05T18:23:12.483 回答
0

if (x && y == 0)不做你认为它做的事。你可能的意思是if (x == 0 && y == 0)

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

于 2015-02-05T18:22:56.170 回答
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;

}
于 2015-02-05T18:24:00.873 回答