2つの整数と1つの演算子から、四則演算の結果を出力するプログラムです。
・問題
2つの整数 a, b と1つの演算子 op を読み込んで、a op b を計算するプログラムを作成して下さい。
ただし、演算子 op は、"+"(和)、"-"(差)、"*"(積)、"/"(商)、のみとし、割り算で割り切れない場合は、小数点以下を切り捨てたものを計算結果とします。
・入力される値
入力は複数のデータセットから構成されています。各データセットの形式は以下のとおりです:
a op b
op が '?' のとき 入力の終わりを示します。
このケースの出力は行ってはいけません。
・期待する出力
各データセットについて、計算結果を1行に出力して下さい。
・条件
0 ≤ a, b ≤ 20000
0 による割り算が与えられることはありません。
インターネットで
#include<stdio.h>
int main(){
int a,b;
char op;
while(1){
scanf("%d %c %d",&a,&op,&b);
if(op=='+'){
printf("%d\n",a+b);
}else if(op=='-'){
printf("%d\n",a-b);
}else if(op=='*'){
printf("%d\n",a*b);
}else if(op=='/'){
printf("%d\n",a/b);
}else if(a==0 || b==0){
break;
}else if(op=='?'){
break;
}
}
return 0;
}
自分で
#include<stdio.h>
int main(){
int a,b;
char op;
while(1){
scanf("%d %c %d",&a,&op,&b);
if(op=='+'){
printf("%d\n",a+b);
}else if(op=='-'){
printf("%d\n",a-b);
}else if(op=='*'){
printf("%d\n",a*b);
}else if(op=='/'&& b!=0){
printf("%d\n",a/b);
}else if(op=='?'){
break;
}
}
return 0;
}
1.图中的提示有误导,以为是先输入所有,再输出所有,因此还设置了一个数组,去存储结果。
而测试成功的代码,是输入之后立马输出结果的。
2. 0 による割り算が与えられることはありません。0无法参与除法计算。
除法中是除数不能为0。
在除法算式中,除号后面的数叫做除数。
若ab=c(b≠0),用积数c和因数b来求另一个因数a的运算就是除法,写作c÷b,读作c除以b(或b除c)。其中,c叫做被除数,b叫做除数,运算的结果a叫做商。
因此在除法计算中,b不能为0 if(op=='/'&& b!=0)
从网上搜索代码来看,a=0 或者 b=0都不行,虽然测试结果通过,但我未明白其意。
或者if(op=='/'&& b!=0 && a!=0) a与b都不能0的情况下,测试不能通过。


文章描述了一个编程问题,要求创建一个程序,接收两个整数和一个运算符,进行加、减、乘、除运算。特别指出,除法中除数不能为0,且输入数据包含多个数据集,每个数据集结束后用?标志结束。

被折叠的 条评论
为什么被折叠?



