2017-06-16 9 views
-1

、すなわちない(あるa)と出力各反復の数字がyで割り切れるかどうか(bかどうか)XがYで割り切れるかどうかを確認し、私は、ユーザーからの数字を取るプログラムの書き込みをしようとしている(AおよびB)、プログラムは、xに1からカウントアップします 一切残り

//while loop deciding if a is divided by b 
    for (count = 1; count <= a; count++) { 
     if (a/b == 0) { 
      printf("%d is divisible by %d\n", a, b); 
     } 
     else if (a/b != 0) { 
      printf("%d is not divisible by %d\n", a, b); 
     } 
    } 
    return 0 ; 
} 

しかし、私はのために10を入力し、出力Bの2は、それぞれの反復がチェックされているように、私は、コードを変更する方法

10 is not divisible by 2 

10回

のですか?

+0

は、なぜあなたは異なる結果を期待しますか?各反復で実際にどの変数が変化しているのか把握できますか? – kaylum

+3

質問のタイトルは誤解を招く – kuro

+1

まず、 'a%b == 0 'はaがbで割り切れることを意味します。あなたはそれを修正したい。また、ループの必要性を指摘することもできます。一度に同じメッセージを印刷したいのですか?最後に 'if'と' else if'条件が正反対です。 'else if'は必要ありません。シンプルな「else」が行います – kuro

答えて

3

最初に - a/bは、を複数回、bで分けることができます。 9/24を提供します。

部門はあなたがa % b == 0を使用しなければならないリマインダーを生成するかどうかを知っています。例:9 % 2あなたは18 % 2はあなたに0を与える一方で得られます。

次 - あなたは、ループ内の計算のためにabを使用してください。 aの代わりにcountを使用する必要があります。これはprintfにも当てはまります。

そして - あなたはelse一部の条件を必要としません。

のようなものを試してみてください:

for (count = 1; count <= a; count++) { 
    if (count % b == 0) { 
     printf("%d is divisible by %d\n", count, b); 
    } 
    else { 
     printf("%d is not divisible by %d\n", count, b); 
    } 
} 
0

あなたのプログラムは、2つの論理エラーがある -

  • あなたは1からaに行くためにforループを実行しているが、どこにでもループ変数countを使用していないがループ内。
  • a/b == 0baの代わりにa%b == 0を使用するかどうかを確認するために使用することはできません。 %は、abで割ったときの剰余を返すモジュラス演算子です。
    正しいコード -

    for (count = 1; count <= a; count++) { 
        if (count%b == 0) { 
         printf("%d is divisible by %d\n", count, b); 
        } 
        else { 
         printf("%d is not divisible by %d\n", count, b); 
        } 
    } 
    
-1

あなたが同じ値を使用しているすべての反復、あなたはカウント変数を使用して、変数の最後の印刷値にすることができます。 あなたはこのように書くことができます

for (count = 1; count <= a; count++) 
    { 
      if (count % b == 0) 
      { 
        printf("%d is divisible by %d\n", a, b); 
        n += 1; 
      } 
    } 
    printf("count : %d\n",n); 

これは数を表示します。あなたが反復ごとに同じ `A`と 'B'の値を使用している場合

+0

あなたの答えは 'count'を使用しない問題を解決しません –

+0

countに変数 'n'を使用しています。それはいいえを数えます。その分裂が起こる回数。 – suraj

+0

これは問題とは関係がありません。他の回答を読んで、正しい理由を確認してください。 –

関連する問題