お蔵入り

clip!clip!
Ads By Google

非0の整数を二つ読み込み。大きい方を小さい方で割った余りを書き出すプログラム。

int a,b,c;
scanf("%d",&a);
scanf("%d",&b);
if(b <=a)
{c=a%b;
printf("%d\n",c);
if(a<=b)
{ c=b%a;
printf("%d\n",c);
}return 0;}
で実行するとエラーがでます。c=a%b;とc=b%a;の位置が間違っていますか?

2007-10-10 13:25の質問
この質問は、30日間解決しなかったために自動的に質問が一旦閉じられました。

回答(1)

2.

2007-10-10 14:13:24
1987さん こんxxは ひよこ画伯やすです。

{}の閉じ方がちょっと違っているみたいですよ。

main()
{   ← ここが抜けてる。(念のためですが)
  int a,b,c;                
  scanf("%d",&a);
  scanf("%d",&b);
  if(b<=a)
  {
    c=a%b;
    printf("%d\n",c);
  }       ← ここが抜けてる。
  if(a<=b)
  {
    c=b%a;
    printf("%d\n",c);
  }
  return 0;
}

なお、if~else文をつかったり、Printfの行を外に出すと、こんな感じにもなるかと思います。

main()

  int a,b,c;
  scanf("%d",&a);
  scanf("%d",&b);
  if(b<=a)
  {
    c=a%b;
  }
  else
  {
    c=b%a;
  }
  printf("%d\n",c);    ← ここに出すのがポイント
  return 0;
}

たしか、scanfも一行にできた気がします。。。
scanf("%d %d",&a,&b); だったかな。。。

では、失礼します。
回答レベル : 回答
Ads By Google

コメント(3)

#4.  BLUEPIXY
2007-10-10 16:36:54

整数って言ったら、マイナスの場合を考えないといかんのじゃないだろうか?
(つまり絶対値として大きい小さいでなくていいんだろうかということ)
そのまんまで良ければ言うこと無いけど。

>>#3%dの間にスペースは要らないような気がしました。
「制御文字列中の空白文字は読みとばされ、入力文字とのマッチング対象にはなりません。」
よってちゃんと動作します。

#5.  imq
2007-10-10 17:47:17

>>#4
了解です。
不要情報なので削除しました。

2007-10-10 22:54:44

#include<stdio.h>
が抜けてるとかいうオチはないですよねw

トラックバック(2)

トラックバックURL: