秘密基地、どこに作った?

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などがあればそれも教えて下さい。
よろしくお願いします。

A 回答 (4件)

こんにちは。



jpncndgoo2さん、プログラム例をいれて頂いたのですが、肝心のproductを求めるところが省略されているので想像が入ってしまうのですが、違っていましたらご指摘下さい。

jpncndgoo2さんは、きっとscanfで取り出した'/'をそのまま使用しようとしたのではないでしょうか?

>scanf("%c",&num3);

上記では、あくまでも文字として入力された値を読み込む為、標準演算子としての機能はありません。
jpncndgoo2さんの作成するプログラムの仕様を満たすには、入力された演算子を文字比較して何が入力されたかチェックし、適宜それにあった処理(演算)をすればよいと思います。
(if文という条件分岐を使用します。これは、ネットで調べればすぐ出てくると思います。)
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/01 16:25

num1 を scanf した後の改行が残っているとかそんなん?


# ソースがないので適当
# そして演算子を格納する変数名が num3 はアカンやろ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/01 16:23

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/01 16:26

%s のみで入力を全て取り込み


取り込んだ内容を手で分解する
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/10/01 16:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報