C++程序 用英文单词模拟数学计算1.读入两个小于100的正整数A和B,能够进行A+B,A-B,A*B,A/B计算.需要注意的是:A和B的每一位数字对应的英文单词给出.不允许负数出现.2.输入格式:测试输入包含若
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/31 22:15:03
C++程序 用英文单词模拟数学计算1.读入两个小于100的正整数A和B,能够进行A+B,A-B,A*B,A/B计算.需要注意的是:A和B的每一位数字对应的英文单词给出.不允许负数出现.2.输入格式:测试输入包含若
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++程序 用英文单词模拟数学计算1.读入两个小于100的正整数A和B,能够进行A+B,A-B,A*B,A/B计算.需要注意的是:A和B的每一位数字对应的英文单词给出.不允许负数出现.2.输入格式:测试输入包含若
除法方面没做不整除处理以及除数是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;
}