提高第37课时,实践2,电子词典
2015-05-29 20:55
330 查看
/* *Copyright(c) 2015/5/28 CSDN博客 *All rights reserved. *文件名称:main.c *作 者:金叶 *完成日期:2015/5/28 *版本号:V1.0 *问题描述:项目2-电子词典 *做一个简单的电子词典。在文件dictionary.txt中,保存的是英汉对照的一个词典,词汇量近8000个,英文与释义间用’\t’隔开。 编程序,将文件中的内容读到两个数组e[]和c[]中,分别代表英文和中文,由用户输入英文词,显示中文意思。运行程序后,支持用户连续地查词典,直到输入“0000”结束,如图: 提示:文件中的词汇已经排序,故在查找时,用二分查找法提高效率。 */ #include <stdio.h> #include <string.h> #include <stdlib.h> #define NUM 8000 int main() { char e[8000][100],c[8000][100]; char key[20]; FILE *fp; int i; if ((fp=fopen("dictionary.txt","r"))==NULL){ printf("dictionary file cannot open!"); exit(0);} else { for (i=0;i<8000;i++){ fscanf(fp,"%s %s",e[i],c[i]); //读入英文和中文 } } fclose(fp); printf("欢迎使用CSDN电子英汉词典!\n"); do{ printf("请输入要查找的英文单词:"); scanf("%s",key); if (strcmp(key,"0000")==0) break; int low,high,mid,index;; low=0,high=NUM-1; while(low<=high) { mid=(low+high)/2; if (strcmp(e[mid],key)==0) { index=mid; break; } else if (strcmp(e[mid],key)>0) high=mid-1; else low=mid+1; } if (low>high) { index=-1; printf("查无此词!\n\n"); } else printf("%s 的中文意思是:%s\n\n", key, c[index]); } while (1); return 0; }
相关文章推荐
- Android学习笔记--HttpURLConnection和HttpClient的使用
- offset Dimensions 详解
- HDU1059——多重部分和问题——Dividing
- 小糖出品:方法的定义与实现
- HDU3304 POJ3146 Interesting Yang Hui Triangle Lucas定理
- Spec 网上选课
- Windows下搭建PHP开发环境
- 设计模式--动态代理(JDK)
- iOS战记 ----OC基础语法之战(一)
- Linux配置
- 路由器花生壳怎样设置
- 语义化命名
- android新特性页面,ViewPager拖拽到最后一页再拖拽打开其他Activity
- 我的Cocos2d-x学习笔记(九)游戏帧循环(游戏主循环)
- FMDB的使用
- 观察者模式
- 我的Cocos2d-x学习笔记(九)游戏帧循环(游戏主循环)
- [LeetCode]Validate Binary Search Tree
- (1915)HDU
- 使用Spring JDBC框架连接并操作数据库