【C/C++】输入一个整数的二目运算式的字符串,如100+20,332-19,200*2333,44/33二目运算取”加减乘除“中的一种输出运算式的整数结果值

 

输入一个整数的二目运算式的字符串,如100+20,332-19,200*2333,44/33
二目运算取”加减乘除“中的一种
输出运算式的整数结果值
输入:"%s"
输出:"%d"


程序运行结果示例:
5376/112↙
48

如果有帮助可以点个赞吗

附函数atoi():

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char s[100];
    scanf("%s",s);
    int i=0;
    int index=0;
    while(s[i]!='\0')//找到符号的下标
    {
        if(s[i]>'9'||s[i]<'0')
        {
            index=i;
            break;
        }
        i++;
    }
    int num1=0,num2=0;
    char n1[100],n2[100];
    for(i=0;i<index;i++)//将第一个数字写入n1
    {
        n1[i]=s[i];
    }
    n1[i]='\0';
    num1=atoi(n1);//转换n1为数字num1
    int j=0;
    for(i=index+1;i<strlen(s);i++,j++)//将第二个数字写入n1
    {
        n2[j]=s[i];
    }
    n2[j]='\0';
    num2=atoi(n2);//转换n2为数字num2
    switch(s[index])//根据符号进行运算
    {
    case '+':
        printf("%d",num1+num2);
        break;
    case '-':
        printf("%d",num1-num2);
        break;
    case '*':
        printf("%d",num1*num2);
        break;
    case '/':
        printf("%d",num1/num2);
        break;
    }
    return 0;
}

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于字符串实现对超长整数的加法运算和减法运算C++ 代码示例: ```c++ #include <iostream> #include <string> #include <algorithm> using namespace std; string add(string a, string b) { // 将字符串翻转,方便从低位到高位相加 reverse(a.begin(), a.end()); reverse(b.begin(), b.end()); // 用 '0' 补齐两个字符串长度,防止出现下标越界 int len = max(a.size(), b.size()); a += string(len - a.size(), '0'); b += string(len - b.size(), '0'); string ans = ""; int carry = 0; for (int i = 0; i < len; i++) { int s = a[i] - '0' + b[i] - '0' + carry; ans += (s % 10) + '0'; carry = s / 10; } // 如果最高位有进位,需要再加一位 if (carry) { ans += '1'; } // 将字符串翻转,还原回原来的顺序 reverse(ans.begin(), ans.end()); return ans; } string sub(string a, string b) { // 将字符串翻转,方便从低位到高位相减 reverse(a.begin(), a.end()); reverse(b.begin(), b.end()); // 用 '0' 补齐两个字符串长度,防止出现下标越界 int len = max(a.size(), b.size()); a += string(len - a.size(), '0'); b += string(len - b.size(), '0'); string ans = ""; int borrow = 0; for (int i = 0; i < len; i++) { int s = a[i] - b[i] - borrow; if (s < 0) { s += 10; borrow = 1; } else { borrow = 0; } ans += s + '0'; } // 去掉前导零 while (ans.size() > 1 && ans.back() == '0') { ans.pop_back(); } // 将字符串翻转,还原回原来的顺序 reverse(ans.begin(), ans.end()); return ans; } int main() { string a, b; char op; cout << "请输入第一个数:"; cin >> a; cout << "请输入运算符(+ 或 -):"; cin >> op; cout << "请输入第二个数:"; cin >> b; if (op == '+') { cout << "运算结果为:" << add(a, b) << endl; } else { cout << "运算结果为:" << sub(a, b) << endl; } return 0; } ``` 这个程序和之前给出的 Python3 的实现非常相似,也分别定义了 `add` 和 `sub` 两个函数,用于实现超长整数的加法和减法。不同的是,这里使用了 C++ 标准库的一些函数,如 `string` 类型、`reverse` 函数、`max` 函数等。 在 `main` 函数,读入两个超长整数和一个运算符,根据运算符调用 `add` 或 `sub` 函数进行运算,最后输出结果。 您可以将以上代码保存为一个 .cpp 文件,然后在命令行编译和运行该文件,按照提示输入两个超长整数和一个运算符,即可得到运算结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值