英文字母A+B

155 阅读1分钟

题目描述

输入两个小于100的正整数A和B,计算A+B。注意:A和B的每一个数字由对应的英文单词组成。

输入

测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔。当A和B同时为zero时输入结束,相应的结果不要输出

输出

对每个测试用例输出1行,即A+B的值.

样例输入

one + two =
three four + five six =
seven + eight nine =
one two + two zero =
zero + zero =

样例输出

3
90
96
32
#include<stdio.h>
#include<string.h>
int change(char arr[])
{
	if (strcmp(arr, "one") == 0)return 1;
	else if (strcmp(arr, "two") == 0)return 2;
	else if (strcmp(arr, "three") == 0)return 3;
	else if (strcmp(arr, "four") == 0)return 4;
	else if (strcmp(arr, "five") == 0)return 5;
	else if (strcmp(arr, "six") == 0)return 6;
	else if (strcmp(arr, "seven") == 0)return 7;
	else if (strcmp(arr, "eight") == 0)return 8;
	else if (strcmp(arr, "nine") == 0)return 9;
	else if (strcmp(arr, "zero") == 0)return 0;
}
 
int main()
{
	char arr[1000] = { 0 };
	int sum1 ,sum2 ;
	while(1)
	{
		sum1 = 0, sum2 = 0;
		while (scanf("%s", arr)==1 && strcmp(arr, "+") != 0)
		{
			sum1 = sum1 * 10 + change(arr);
		}
		while (scanf("%s", arr)==1 && strcmp(arr, "=") != 0)
		{
			sum2 = sum2 * 10 + change(arr);
		}
		if (sum1==0 && sum2 == 0)
		{
			break;
		}
		else
		{
			printf("%d\n", sum1 + sum2);
		}
		getchar();
	}
	return 0;
}