思路:直接给代码了;
代码如下:
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <vector>
using namespace std;
char key[10][10] = { "zero","one","two","three","four","five","six","seven","eight","nine" };
int judge(char s[])
{
int sum = 0;
int len = strlen(s);
int i;
int x;
int z;
char a1[10];
int flag;
x = 0;
flag = 0;
sum = 0;
for (i = 0; i < len; i++)
{
if (s[i] != ' ')
{
a1[x++] = s[i];
}
else
{
a1[x] = '\0';
for (z = 0; z < 10; z++)
{
if (strcmp(key[z], a1) == 0)
{
sum = z;
flag = 1;
break;
}
}
}
if (i != len - 1 && flag == 1)
{
sum += 9 * z;
x = 0;
i++;
for (; i < len; i++)
{
if (s[i] != ' ')
{
a1[x++] = s[i];
}
else
{
a1[x] = '\0';
for (z = 0; z < 10; z++)
{
if (strcmp(key[z], a1) == 0)
{
sum += z;
break;
}
}
}
}
break;
}
}
return sum;
}
int main()
{
char s[100];
char a[50];
char b[50];
int i;
int len;
int x;
int y;
int temp;
while (gets_s(s, sizeof(s)))
{
len = strlen(s);
x = 0;
y = 0;
temp = 0;
for (i = 0; i < len; i++)
{
if (s[i] == '+')
{
a[x] = '\0';
break;
}
else
{
a[x++] = s[i];
}
}
i++;
for (; i < len; i++)
{
if (s[i] == '=')
{
b[y] = '\0';
break;
}
else
{
b[y++] = s[i];
}
}
if (judge(a) == 0 && judge(b) == 0)
{
break;
}
else
{
printf("%d\n", judge(a) + judge(b));
}
}
//getchar();
return 1;
}