ページ 1 / 1
よろしければ教えてください
Posted: 2009年5月27日(水) 01:07
by ユーリ
sacanf関数を用いて計算方法(+、-、*、/)と二個の整数をキーボードから入力し、計算方法よって、二個
の整数の計算を行なうものです。
これをswitch文で行いたいのですが
割り算と指定したとき0で割り算しないようにするにはどうしたらいいのでしょうか?
そこだけがわかりません。
よろしければお教えください。
Re:よろしければ教えてください
Posted: 2009年5月27日(水) 01:16
by kazuoni
scanfの打ち間違えですかね?^^;
以下はC言語かつ
命題において、分母に0が来たら計算終了を想定しています。
scanf("%d,%d",&a1,%a2);
のように読み取り、a1/a2を想定するなら、
a2が0ならば演算処理をしない(if文)
でよいのではないでしょうか?
Re:よろしければ教えてください
Posted: 2009年5月27日(水) 01:20
by BEMANI
>>ユーリさん
割り算の時、除数が0であるかどうかを判定すればいいと思います。
(a/bという割り算で、bに0が入力されたとすると if(b == 0){ もう一度入力等 })
Re:よろしければ教えてください
Posted: 2009年5月27日(水) 01:23
by BEMANI
>>kazuoniさん
scanfの第三引数が %a2になってますよ;
しかも思いっきりかぶってしまい申し訳ございませんでした;
Re:よろしければ教えてください
Posted: 2009年5月27日(水) 01:28
by ユーリ
#include <stdio.h>
main()
{
int a,b;
char c;
printf("+,-,*,/の何れかを入力してください\n");
scanf("%c", &c);
printf("数字を入力してください\n");
scanf("%d", &a);
scanf("%d", &b);
switch (c){
case '+':
printf("a+b=%d\n",a+b);
break;
case '-':
printf("a-b=%d\n",a-b);
break;
case '*':
printf("a*b=%d\n",a*b);
break;
case '/':
printf("a/b=%d\n",a/b);
break;
}
return 0;
}
ここまでできたのですがこれにif文を加えればよろしいのですか?
Re:よろしければ教えてください
Posted: 2009年5月27日(水) 02:40
by kazuoni
>scanf("%d,%d",&a1,%a2);
間違えました。。
scanf("%d,%d",&a1,&a2);
が正しかったです。。
>ここまでできたのですがこれにif文を加えればよろしいのですか?
はい。
Re:よろしければ教えてください
Posted: 2009年5月27日(水) 07:38
by ユーリ
質問なんですがさっきのプログラムにif(b==0)をいれたら/だけじゃなく*などの時も
0では割れないと表示されてしまうんですけど
/だけ表示するにはどうしたらいいのでしょうか?
Re:よろしければ教えてください
Posted: 2009年5月27日(水) 08:41
by non
case '/':
ここにif文を書く
printf("a/b=%d\n",a/b);
break;
Re:よろしければ教えてください
Posted: 2009年5月27日(水) 17:50
by ユーリ
ありがとうございました。
助かりました。