• ベストアンサー

scanf関数を用いての標準演算子(*/+-%)の入力方法

C言語超初心者のものです。 scanf関数を用いての標準演算子(*/+-%)の入力方法について質問があります。 例:17 / 5 = 3 において ”17”、 ”/”、 ”5” を各々キーボードから入力し、”3”の数値をDOS画面?上に表示させるものです。 ”17”、”5”はscanf関数を使いキーボードから入力できるのですが、”/”だけがどうしても標準演算子として認識させることが出来ません。 私は以下のプログラムを組んでいるのですが、 char num3;  ・・・(省略) printf("Please type in a operator: "); scanf("%c",&num3);  ・・・(省略) printf("%d %c %d is %d\n", num1, num3, num2, product); 無理やりコンパイルして、DOS画面?上に表示させても17 / 5=65536となってしまいます。 ”/”をプログラミングの中で認識させて、ディスプレイ上で例式が正常に表示されるようにしたいのですが、どうしても回答が3になりません。 多分1つの標準演算子が入力できれば、他の標準演算子も入力できると考えています。 どうすればキーボードから標準演算子をプログラミングに認識させることが可能になるのでしょうか? どなたか分かる方がいらっしゃいましたら教えて下さい。 また参考になるURLなどがあればそれも教えて下さい。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

こんにちは。 jpncndgoo2さん、プログラム例をいれて頂いたのですが、肝心のproductを求めるところが省略されているので想像が入ってしまうのですが、違っていましたらご指摘下さい。 jpncndgoo2さんは、きっとscanfで取り出した'/'をそのまま使用しようとしたのではないでしょうか? >scanf("%c",&num3); 上記では、あくまでも文字として入力された値を読み込む為、標準演算子としての機能はありません。 jpncndgoo2さんの作成するプログラムの仕様を満たすには、入力された演算子を文字比較して何が入力されたかチェックし、適宜それにあった処理(演算)をすればよいと思います。 (if文という条件分岐を使用します。これは、ネットで調べればすぐ出てくると思います。)

jpncndgoo2
質問者

お礼

回答ありがとうございます。鋭い回答だな、と思いました。 今if文にてプログラムを作成しています。

その他の回答 (3)

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.4

num1 を scanf した後の改行が残っているとかそんなん? # ソースがないので適当 # そして演算子を格納する変数名が num3 はアカンやろ。

jpncndgoo2
質問者

お礼

回答ありがとうございました。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

「原因はまったく違う部分にある」と思われるので、プログラムソースを略さずすべて載せて「このプログラムの何が悪いのか?」を質問してみましょう。

jpncndgoo2
質問者

お礼

回答ありがとうございます。 別の投稿欄を使用し、再度投稿してみます。

noname#39970
noname#39970
回答No.1

%s のみで入力を全て取り込み 取り込んだ内容を手で分解する

jpncndgoo2
質問者

お礼

回答ありがとうございます。

関連するQ&A