C言語による簡単な計算機です。

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

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的情况下,测试不能通过。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值