这段程序写得很不好,时间复杂度太高了,主要是C语言没学好,o(╥﹏╥)o
建议最好用map方法,至于VJ平台居然过了我表示很开心,不说了,看代码。
再说一句,最近又去看了看结构体,就用这种方法写喽。
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
struct English{
char name[10];
int value;
};
int main(){
struct English Eng[12]={{"zero",0},{"one",1},
{"two",2},{"three",3},{"four",4},{"five",5},
{"six",6},{"seven",7},{"eight",8},{"nine",9},{"+",10},{"=",11}};
char str[20];int a=1,b=1,c,k,h;
while(a!=0||b!=0){
a=0,b=0,c=0;
while(scanf("%s",str)){
if(strcmp(str,Eng[10].name)==0)
c=1;
if(strcmp(str,Eng[11].name)==0){
if(a+b!=0)
cout<<a+b<<endl;
break;
}//输入的是数字
if(c==0){
for(int i=0;i<10;i++)
if(strcmp(str,Eng[i].name)==0)
k=i;
a=a*10+Eng[k].value;
}
if(c==1&&strcmp(str,Eng[10].name)!=0){
for(int i=0;i<10;i++)
if(strcmp(str,Eng[i].name)==0)
h=i;
b=b*10+Eng[h].value;
}
}
}
return 0;
}