作业帮 > 综合 > 作业

C++程序 用英文单词模拟数学计算

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/04 08:50:55
C++程序 用英文单词模拟数学计算
1.读入两个小于100的正整数A和B,能够进行A+B,A-B,A*B,A/B计算.需要注意的是:A和B的每一位数字对应的英文单词给出.不允许负数出现.
2.输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为“A + B =”,相邻两字符串有一个空格间隔,当A和B同时为zero时输入结束,相应的结果不要输出.
3.输出格式:对每个测试用例输出1行,即A+B,或A-B,或A*B 或A/B的值.
输入样例:
one + two =
five six - three four =
seven * nine =
zero + zero =
输出样例:
three
two two
six three
C++程序 用英文单词模拟数学计算
除法方面没做不整除处理以及除数是0的情况.自己修改下.如果有要求的话.

#include<iostream>
#include<string>
using namespace std;
string num[]={"zero","one","two","three","four","five","six","seven","eight","nine"};
void output(int k)
{
        if(k==0) return ;
        output(k/10);
        cout<<num[k%10]<<" ";
}

int main()
{
        do
        {
                int a[2]={0};
                int k=0;
                int t;
                string tmp;
                while(cin>>tmp)
                {
                        if(tmp=="=") break;
                        if(tmp=="+" || tmp=="-" || tmp=="*"|| tmp=="/")
                        {
                                if(tmp=="+") t=0;
                                if(tmp=="-") t=1;
                                if(tmp=="*") t=2;
                                if(tmp=="/") t=3;
                                k++;
                        }
                        else
                        {
                                int i;
                                for(i=0;;i++) { if(num[i]==tmp) break;  }
                                a[k]=a[k]*10+ i;
                        }

                }

                if(a[0]==0&&a[1]==0) break;
                if(t==0) k=a[0]+a[1];
                if(t==1) k=a[0]-a[1];
                if(t==2) k=a[0]*a[1];
                if(t==3) k=a[0]/a[1];
                if(k==0) cout<<"zero"<<endl;
                else output(k);

        }while(true);
        return 0;
}
再问: 十分感谢!就是和要求有一点不太一样。要一次性输入四则运算,然后输入zero + zero =的时候给出所有运算的结果。这个该怎么改?
再答: 你是acm的吧,这种输入输出就是标准的, 没有要求最后才一次性输出的。。 那样做,要先存起来,或是数组,或是长字符串,都对内存消耗很大。
再问: 我也觉得挺奇怪的,但是题目要求就是这样,我在问题里把输入输出的样例写了。
再答: 你就按我的提交上去,输出输入肯定没问题,我都做了几百道了