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

杭电1228 读入两个小于100的正整数A和B,计算A+B.需要注意的是:A和B的每一位数字由对应的英文单词给出.
测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,相应的结果不要输出.
Output
对每个测试用例输出1行,即A+B的值.
Sample Input
one + two =
three four + five six =
zero seven + eight nine =
zero + zero =
Sample Output
3
90
96
#include
using namespace std;
int main()
{
string a,b;
int s1=0,s2=0,s;
loop:while(cin>>a)
{
if(a=="one")
s1=s1*10+1;
else if(a=="two")
s1=s1*10+2;
else if(a=="three")
s1=s1*10+3;
else if(a=="four")
s1=s1*10+4;
else if(a=="five")
s1=s1*10+5;
else if(a=="six")
s1=s1*10+6;
else if(a=="seven")
s1=s1*10+7;
else if(a=="eight")
s1=s1*10+8;
else if(a=="nine")
s1=s1*10+9;
else if(a=="+")
break;
}
while(cin>>b)
{
if(b=="one")
s2=s2*10+1;
else if(b=="two")
s2=s2*10+2;
else if(b=="three")
s2=s2*10+3;
else if(b=="four")
s2=s2*10+4;
else if(b=="five")
s2=s2*10+5;
else if(b=="six")
s2=s2*10+6;
else if(b=="seven")
s2=s2*10+7;
else if(b=="eight")
s2=s2*10+8;
else if(b=="nine")
s2=s2*10+9;
else if(b=="=")
break;
}
s=s1+s2;
cout
tet159 1年前 已收到1个回答 举报

opple 幼苗

共回答了18个问题采纳率:83.3% 举报

1.没有包含头文件#include
2.题中要求A B同时为0的时候结束 对应结果不用输出,你编的会先输出再结束.
下面是正确的代码.可以参考下
#include
#include
int cmp(char s[])
{
if(strcmp(s,"zero")==0) return 0;
else if(strcmp(s,"one")==0) return 1;
else if(strcmp(s,"two")==0) return 2;
else if(strcmp(s,"three")==0) return 3;
else if(strcmp(s,"four")==0) return 4;
else if(strcmp(s,"five")==0) return 5;
else if(strcmp(s,"six")==0) return 6;
else if(strcmp(s,"seven")==0) return 7;
else if(strcmp(s,"eight")==0) return 8;
else if(strcmp(s,"nine")==0) return 9;
return 0;
}
main()
{
int count=0,i=10,a=0,temp=0;
char s[10];
while(scanf("%s",s)!=EOF)
{
if(strcmp(s,"=")==0)
{
if(count==2)
a+=temp;
else if(count==1)
a+=temp/10;
if(a==0)
return 0;
else
printf("%dn",a);
a=0;
temp=0;
i=10;
count=0;
}
else if(strcmp(s,"+")==0)
{
if(count==2)
a=temp;
if(count==1)
a=temp/10;
count=0;
i=10;
temp=0;
}
else
{
count++;
temp+=i*cmp(s);
i=i/10;
}
}
}

1年前

7
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.032 s. - webmaster@yulucn.com