题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1228

Problem Description
读入两个小于100的正整数A和B,计算A+B. 需要注意的是:A和B的每一位数字由对应的英文单词给出.
Input
测试输入包含若干测试用例,每个测试用例占一行,格式为"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

题解思路:这道题本来想用gets函数,循环读进来的字符串,把每一个单词存到二维数组里面,再与已存在的二维数组进行比较。但看了别人的题解后才发现忘了scanf有这个功能即遇到空格、换行、回车、水平制表符、换页符、垂直制表符就会停止读取(这里用到的是空格的功能),不仅效率高,而且思路清晰,代码简洁。

AC代码:

 #include<bits/stdc++.h>
using namespace std;
char t[][]={"zero","one","two","three","four","five","six","seven","eight","nine"};//先用二维数组保存对应的数字
int fd(char str[])//查找字符串
{
int i;
for(i=;i<;i++)
if(!strcmp(t[i],str))break;
return i;//返回该字符串对应的数字
}
int main()
{ char c[];
int a,b;
while(){
a=b=;
while(scanf("%s",c)&&strcmp(c,"+"))a=a*+fd(c);//遇到'+'就会结束当前循环
while(scanf("%s",c)&&strcmp(c,"="))b=b*+fd(c);//遇到'='就会结束当前循环
if(a==&&b==)break;//题目要求当A、B都为0时停止输入
else cout<<(a+b)<<endl;//直接计算输出结果
}
return ;
}

最新文章

  1. oneM2M标准发展神速 实现万物联网的愿景
  2. Microsoft Dynamics CRM 2013 CD-KEY
  3. Merge Two Sorted Lists
  4. JSP和servlet有什么区别?
  5. 用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
  6. 数据库 SQL :有关 NULL 值引发 TRUE、FALSE、UNKNOW 三值逻辑
  7. 阻止事件冒泡(stopPropagation和cancelBubble)和阻止默认行为(preventDefault和returnValue)
  8. web运维第一篇:nginx配置文件详解笔记
  9. The server quit without updating PID file (mysql.pid)一次意外mysql停止运行备忘录
  10. Java的函数与函数重载
  11. 怎样将android studio项目导入eclipse
  12. ReferenceTypeDemo
  13. 【Electron】Electron开发入门
  14. (转)Linux命令unzip
  15. Android的微信智能心跳方案
  16. Ubuntu18.04更换国内源(阿里,网易,中科大,清华等源)
  17. tensorflow 经典教程及案例
  18. power designer的安装
  19. C# 8小特性
  20. 论文笔记-Mining latent relations in peer-production environments

热门文章

  1. Meteor会话
  2. C语言-- static 全局使用示例
  3. css3最新版中文参考手册在线浏览
  4. 2016/3/17 Mysq select 数学函数 字符串函数 时间函数 系统信息函数 加密函数
  5. Apsara Clouder专项技能认证:实现调用API接口 (笔记)
  6. SSH无密码验证可能出现的问题
  7. Hbase权限配置以及使用手册
  8. linux路由表解析
  9. C#使用 webBrowser 控件总结
  10. c语言中 %p的含义【转】