牛客网 CPP54 实现简单计算器功能

描述

键盘输入一个字符串,格式:运算方式 整数1 整数2,编写程序解析出字符串中的 3 部分内容,然后做相应的运算,并输出结果。

例如:

输入“add 10 20”,则做加法运算(10+20);

输入“sub 10 20”,则做减法运算(10-20);

输入“mul 10 20”,则做乘法运算(10*20);

输入“div 10 20”,则做除法运算(10/20),如果除数为 0,则不做运算,输出“Error”;

注意:运算方式忽略大小写,即 “add” 同 “Add”、“ADD”等。

输入描述:

键盘输入一个字符串,格式:运算方式 整数1 整数2

整数范围为[-100, 100]

输出描述:

输出运算后的结果(除法不考虑小数),如果除数为 0,则不做运算,输出“Error”

AC代码:

#include <iostream>
#include <string.h>
#include <sstream>

using namespace std;

int StoI(string x){
    stringstream ss(x);
    int t;
    ss>>t;
    return t;
}

int main() {

    char str[100] = { 0 };
    cin.getline(str, sizeof(str));
    
    string op="";
    string sa,sb;
    int len=strlen(str);
    int k=0;
    while(str[k]!=' ' && k<len)
        op+=str[k++];
    k++;
    while(str[k]!=' ' && k<len)
        sa+=str[k++];
    k++;
    while(str[k]!=' ' && k<len)
        sb+=str[k++];
    
    int a=StoI(sa);
    int b=StoI(sb);
    
    //将op全部小写
    for(int i=0;i<op.length();i++){
        if(op[i]>='a' && op[i]<='z')
            continue;
        op[i]+='A'-'a';
    }
    int res;
    
    if(op=="div" && b==0){
        cout<<"Error"<<endl;    
    }

	else{
		if(op=="add")
			res=a+b;
		else if(op=="sub")
			res=a-b;
		else if(op=="mul")
			res=a*b;
		else
			res=a/b;
        
         cout<<res<<endl;
	}
       
   
   
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值