-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 に答える