早教吧作业答案频道 -->其他-->
杭电1228读入两个小于100的正整数A和B,计算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
测试输入包含若干测试用例,每个测试用例占一行,格式为"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
▼优质解答
答案和解析
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("%d\n",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;
}
}
}
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("%d\n",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;
}
}
}
看了 杭电1228读入两个小于10...的网友还看了以下:
C语言:求m!+n!之和【问题描述】输入2 个正整数m 和n,计算m!+n!。【输入形式】从键盘输 2020-05-17 …
读入一个整数m,计算如下公式的值 t=1+1/2+1/3+1/4+.+1/m读入一个整数m,计算如 2020-05-17 …
一道FreePascal题数列求和求:SN=A+AA+AAA+…+AA…A(最后项N个A,共N项) 2020-07-19 …
由键盘任意输入10个数,将最大数调到最前面,最小数调到最后面.输入:任意10个数输出:数据调整后的 2020-07-31 …
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离.输入由4个实数组成,分别表示x 2020-08-03 …
c语言的一些小程序,要预编译头的,急急急!!!!题目一:描述输入n,判断从1到n之中,数字1一共要出 2020-11-23 …
描述输入x(x为整数),求函数值函数定义如下:F(x)=xx小于3F(x)=F(x/3)*2x大于等 2020-11-28 …
1.一次投入总数的一半,赢则为总数的25%,输就输光投入的也就总数的50%.2.下一次投入为上一次盈 2020-12-12 …
近来,美洲多个国家发生寨卡病毒感染病例,欧洲、亚洲、大洋洲等地的多个国家和地区也有输入病例报告.寨卡 2020-12-20 …
涉及for语句和ifelse语句.输入x,计算并输出下列分段函数f(x)的值(保留2位小数),请调用 2020-12-31 …