C++课题。读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出

2024-12-29 09:04:00
推荐回答(5个)
回答1:

//你题目中那代码太差了,还用什么goto,而且输出也不符合题目要求。。。。
//帮你写了一份
#include 
#include 
#include 
using namespace std;
//By:@qwn3213
//2015.09.02
string str[]={"zero","one","two","three","four","five","six","seven","eight","nine"};
int input()
{
    string a;
    int s1=0;
    while(cin>>a)
    {
        if(a=="+"||a=="=")
            break;
        for(int i=0;i<10;i++)
            if(a==str[i])
            {
                s1=s1*10+i;
                break;
            }
    }
    return s1;
}
void output(int x)
{
   char s[20];
   sprintf(s,"%d",x);
   for(int i=0;s[i]!=0;i++)
       cout<   cout<}
int main()
{
    int a,b;
    while(1)
    {
        a=input();
        b=input();
        if(a==0&&b==0)
            return 0;
        output(a+b);
    }
    return 0;
}

 

回答2:

容易,搞个枚举型的,从0到198,最大99+99,全用英文然后匹配输入,输出,就ok了

回答3:

其实,这个程序还有一个bug,就是输入100+101,就会崩溃,不过约定输入在0~99之间,就ok了。如果想完美解决,就搞两个数组,一个保存0~99,一个保存0~198,开始查找都用第一个数组,最后一行输出,换成第二个数组,就完美了。

回答4:

回答5:

用字典树做啊,将英文单词存入字典树,每个单词对应个数字,分分钟得事啊!