よろしければ教えてください

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ユーリ

よろしければ教えてください

#1

投稿記事 by ユーリ » 16年前

sacanf関数を用いて計算方法(+、-、*、/)と二個の整数をキーボードから入力し、計算方法よって、二個
の整数の計算を行なうものです。
これをswitch文で行いたいのですが
割り算と指定したとき0で割り算しないようにするにはどうしたらいいのでしょうか?
そこだけがわかりません。
よろしければお教えください。

kazuoni

Re:よろしければ教えてください

#2

投稿記事 by kazuoni » 16年前

scanfの打ち間違えですかね?^^;

以下はC言語かつ
命題において、分母に0が来たら計算終了を想定しています。

scanf("%d,%d",&a1,%a2);

のように読み取り、a1/a2を想定するなら、
a2が0ならば演算処理をしない(if文)
でよいのではないでしょうか?

BEMANI

Re:よろしければ教えてください

#3

投稿記事 by BEMANI » 16年前

>>ユーリさん
割り算の時、除数が0であるかどうかを判定すればいいと思います。
(a/bという割り算で、bに0が入力されたとすると if(b == 0){ もう一度入力等 })

BEMANI

Re:よろしければ教えてください

#4

投稿記事 by BEMANI » 16年前

>>kazuoniさん
scanfの第三引数が %a2になってますよ;
しかも思いっきりかぶってしまい申し訳ございませんでした;

ユーリ

Re:よろしければ教えてください

#5

投稿記事 by ユーリ » 16年前

#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文を加えればよろしいのですか?

kazuoni

Re:よろしければ教えてください

#6

投稿記事 by kazuoni » 16年前

>scanf("%d,%d",&a1,%a2);

間違えました。。
scanf("%d,%d",&a1,&a2);
が正しかったです。。

>ここまでできたのですがこれにif文を加えればよろしいのですか?
はい。

ユーリ

Re:よろしければ教えてください

#7

投稿記事 by ユーリ » 16年前

質問なんですがさっきのプログラムにif(b==0)をいれたら/だけじゃなく*などの時も
0では割れないと表示されてしまうんですけど
/だけ表示するにはどうしたらいいのでしょうか?

non

Re:よろしければ教えてください

#8

投稿記事 by non » 16年前

case '/': 
   ここにif文を書く
  printf("a/b=%d\n",a/b); 
break;

ユーリ

Re:よろしければ教えてください

#9

投稿記事 by ユーリ » 16年前

ありがとうございました。
助かりました。

閉鎖

“C言語何でも質問掲示板” へ戻る