AOJ(aizu online judge)と言うサイトのITP1_4_Cの問題です。
計算機
2つの整数 a, b と1つの演算子 op を読み込んで、a op b を計算するプログラムを作成して下さい。ただし、演算子 op は、"+"(和)、"-"(差)、"*"(積)、"/"(商)、のみとし、割り算で割り切れない場合は、小数点以下を切り捨てたものを計算結果とします。
Input
入力は複数のデータセットから構成されています。各データセットの形式は以下のとおりです:
a op b
op が '?' のとき 入力の終わりを示します。このケースの出力は行ってはいけません。
Output
各データセットについて、計算結果を1行に出力して下さい。
この問題で何回もエラーが出てしまって、
下のコードのscanfの行をcinで書き直したところ受理できたのですが、scanfではなぜダメなのですが?
cinとscanfの違いを調べたところ型を指定できるかどうかと空白、改行区切りができるかどうかと言う違いしか出てこなかったです...。
(検索不足でしたらすみません)
c++
1#include<iostream> 2using namespace std; 3 4int main(){ 5 int a,b; 6 char op; 7 8 while(1){ 9 scanf("%d %c %d",&a,&op,&b); 10 if(op == '?') break; 11 12 if(op == '+') cout << a+b << endl; 13 else if(op == '-') cout << a-b << endl; 14 else if(op == '*') cout << a*b << endl; 15 else if(op == '/') cout << a/b << endl; 16 } 17 return 0; 18}
> 下のコードのscanfの行をcinで書き直したところ受理できたのですが、scanfではなぜダメなのですが?
どのようなコンパイルエラーが出たのか、手元ではコンパイルに成功するがCEなのか、REなのか書いてください
回答3件
あなたの回答
tips
プレビュー