除法方面没做不整除处理以及除数是0的情况.自己修改下.如果有要求的话.
#include
#include
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<
}
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 }while(true); return 0; }