sacanf関数を用いて計算方法(+、-、*、/)と二個の整数をキーボードから入力し、計算方法よって、二個
の整数の計算を行なうものです。
これをswitch文で行いたいのですが
割り算と指定したとき0で割り算しないようにするにはどうしたらいいのでしょうか?
そこだけがわかりません。
よろしければお教えください。
よろしければ教えてください
Re:よろしければ教えてください
scanfの打ち間違えですかね?^^;
以下はC言語かつ
命題において、分母に0が来たら計算終了を想定しています。
scanf("%d,%d",&a1,%a2);
のように読み取り、a1/a2を想定するなら、
a2が0ならば演算処理をしない(if文)
でよいのではないでしょうか?
以下はC言語かつ
命題において、分母に0が来たら計算終了を想定しています。
scanf("%d,%d",&a1,%a2);
のように読み取り、a1/a2を想定するなら、
a2が0ならば演算処理をしない(if文)
でよいのではないでしょうか?
Re:よろしければ教えてください
>>ユーリさん
割り算の時、除数が0であるかどうかを判定すればいいと思います。
(a/bという割り算で、bに0が入力されたとすると if(b == 0){ もう一度入力等 })
割り算の時、除数が0であるかどうかを判定すればいいと思います。
(a/bという割り算で、bに0が入力されたとすると if(b == 0){ もう一度入力等 })
Re:よろしければ教えてください
#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文を加えればよろしいのですか?
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:よろしければ教えてください
>scanf("%d,%d",&a1,%a2);
間違えました。。
scanf("%d,%d",&a1,&a2);
が正しかったです。。
>ここまでできたのですがこれにif文を加えればよろしいのですか?
はい。
間違えました。。
scanf("%d,%d",&a1,&a2);
が正しかったです。。
>ここまでできたのですがこれにif文を加えればよろしいのですか?
はい。
Re:よろしければ教えてください
質問なんですがさっきのプログラムにif(b==0)をいれたら/だけじゃなく*などの時も
0では割れないと表示されてしまうんですけど
/だけ表示するにはどうしたらいいのでしょうか?
0では割れないと表示されてしまうんですけど
/だけ表示するにはどうしたらいいのでしょうか?