问题 : 阶段2考试题目4 手机按键

时间限制: 1 Sec  内存限制: 128 MB
提交: 4617  解决: 874
[提交][状态][讨论版]

题目描述

老式的智能手机的键盘一般是这样的:
要按出英文字母就必须要按数字键多下。例如要按出x就得按9两下,第一下会出w,而第二下会把w变成x。0键按一下会出一个空格。你的任务是从指定文件中读取指定行只包含英文小写字母和空格的句子,计算要在手机上打出这个句子至少需要按多少下键盘。
请完成函数: int CountLine(FILE *fp, int n);
函数说明:从fp文件中读入第n行句子(文件从第1行开始算起,不是从第0行开始计算),每个句子只包含英文小写字母和空格,注意过滤大写字母、数字、符号、\n、\t等其他字符,每行不超过200个字符。返回按键次数。若指定行不存在或文件读取错误,函数返回0。
如文件中读到的文本串为:i have a dream, 则函数返回23。

提示

1. 参考流程图如下(建议图片右键另存到本地,在本地放大查看),但也可以不按该流程编写代码。

2. 请按照要求编写指定函数,允许新增函数。

3. 在本地调试时需要自行编写main()函数及其他辅助函数,但不能提交,否则可能会导致函数重定义编译错误。

4. 在本地调试时,可使用的参考输入文件请从这里下载。

代码实现

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>int ReadLine(char* s, FILE* fp, int n) {int i = 0;int ch = 0;if (s == NULL || fp == NULL || n < 1) {return 0;}else{rewind(fp);while (n != 1 && ch != EOF){ch = fgetc(fp);if (ch == '\n') {n--;}}while ((ch = fgetc(fp)) != EOF && ch != '\n' && i < 200){if (ch >= 'a' && ch <= 'z' || ch == ' ') {s[i++] = ch;}}s[i] = '\0';return i;}return 0;
}int CountLine(FILE* fp, int n) {int alpha[26] = { 1,2,3,1,2,3, 1,2,3,1,2,3, 1,2,3, 1,2,3, 4,1,2,3, 1,2,3, 4 };char str[200] = { '\0'};int len, i, keys = 0;if (fp == NULL || n < 1) {return 0;}else{ReadLine(str, fp, n);len = strlen(str);if (len == 0) {return 0;}i = 0;while (i<len){if (str[i] >= 'a' && str[i] <= 'z') {keys += alpha[str[i] - 'a'];}else{keys++;}i++;}return keys;}return 0;
}int main() {FILE* fp = NULL;int a, b, i;fp = fopen("test.dic", "r");if (fp == NULL) {puts("Cannot Open Input File.\n");return -1;}else{scanf("%d%d", &a, &b);i = a;while (i <= b) {printf("%d\n", CountLine(fp, i));i++;}fclose(fp);}return 0;
}

Nwafu-OJ-1507 Problem 阶段2考试题目4 手机按键相关推荐

  1. 中职计算机教师招聘试题库,职业技术学校教师考试题目

    <职业技术学校教师考试题目>由会员分享,可在线阅读,更多相关<职业技术学校教师考试题目(1页珍藏版)>请在人人文库网上搜索. 1.2015广东省理工职业技术学校考试试题(学校自 ...

  2. pmp考试题目常见套路

    pmp考试题目常见套路: 在pmp考试中,有的题目会有常见的固定套路以及在面对这种题目时的应对技巧 常见套路是一下十六项 一.变更批准之后变更批准后要做三件事: 1.在变更日志中记录: 2.通知相关干 ...

  3. emv中的 部分匹配_PMP考试题目中31个常见固定套路

    PMP考试题目中31个常见固定套路2017-11 一.变更批准之后: 变更批准后要做五件事, 1.在变更日志中记录: 2.通知相关干系人(相关方): 3.更新项目管理计划 4.实施批准过的变更 ... ...

  4. 《大数据计算》课程考试题目(含答案)

    <大数据计算>课程考试题目 一.选择题 1.下面哪个程序负责 HDFS 数据存储. a)NameNode  b)Jobtracker  c)Datanode  d)SecondaryNam ...

  5. 【2022-2023】华为ICT大赛实践赛——计算赛道,针对华为认证考取、考试题目类型、电脑端适配等问题问答

    问:考取HCIA认证加分,是只适用于省初赛阶段吗? 只会在省初赛环节加分,后续不会进行重复加分. 问:计算赛道的竞赛大纲能在哪里看到? 报名后,可以在报名页面的学习空间里找到,具体链接如下: http ...

  6. c语言程序设计上机考试占多少分,C语言程序设计上机考试题目汇编.doc

    C语言程序设计上机考试题目汇编 C语言程序设计上机考试题目汇编 1.编写程序对ss字符中所有下标为奇数位置上的字母为大写 2.编写程序对指定字符在字符串a中出现的次数进行统计, 统计的数据存到b数组中 ...

  7. 武汉计算机组成原理八校联盟考试,武汉理工大学《计算机组成原理》在线练习及考试题目.doc...

    <武汉理工大学<计算机组成原理>在线练习及考试题目.doc>由会员分享,可在线阅读,更多相关<武汉理工大学<计算机组成原理>在线练习及考试题目.doc(159 ...

  8. 重庆工商大学c语言实验一答案,重庆工商大学嵌入式实验考试题目答案 - 副本.doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbsp嵌入式开发 重庆工商大学嵌入式实验考试题目答案 - 副本.doc ...

  9. 按冯诺依曼提出的计算机类型,2011年12月24日计算机一级考试题目广西

    <2011年12月24日计算机一级考试题目广西>由会员分享,可在线阅读,更多相关<2011年12月24日计算机一级考试题目广西(13页珍藏版)>请在人人文库网上搜索. 1.全国 ...

最新文章

  1. 【部分原创】python实现视频内的face swap(换脸)
  2. Oracle Dataguard中备库中归档日志不同步
  3. .net中日至框架log4net.dll如何使用
  4. 6的变换_FPGA时序结构的LBT变换控制器设计
  5. 给共享程序集延迟签名
  6. 【AI白身境】学深度学习你不得不知的爬虫基础
  7. GridView的操作:导出Excel[方案一]
  8. php下载css图片,PHP实现下载CSS文件中的图片
  9. LINUX下的FTP服务器
  10. 运动目标跟踪(十四)--MIL跟踪
  11. wegame开dnf正在连接服务器,DNF安装wegame后显示无网络连接状态解决办法
  12. NMOS和PMOS的电路符号记忆方法
  13. linux c解决多个第三方so动态库包含不同版本openssl造成的符号冲突
  14. 如何去利用MindManager 2020绘制逻辑思维导图呢?
  15. 网页播放器自定义倍速播放
  16. 腾讯云 CVM 定价标准?详解
  17. JavaSEDemo25Map
  18. 一步步学习微软InfoPath2010和SP2010--第四章节--处理SP列表表单(4)--已计算值域
  19. SpringBoot快速入门one
  20. 程序猿生存指南-19 全民编程

热门文章

  1. c语言中一个字母-97 1,C语言学习(1)
  2. 安全联盟2016年度网络诈骗数据报告
  3. 剑网3云南玩哪个服务器延迟低,剑网三:云玩家吐槽赤兔获取途径被抓包:拜托,下个游戏吧!...
  4. 同义词词典有利于提高Tag向量匹配度
  5. java多线程聊天室_【Java】Socket+多线程实现控制台聊天室
  6. “非工作总结”之快门—我的镜头见过你
  7. 关于Linux开启pathinfo,lnmp开启pathinfo
  8. 左手PPT,右手镰刀!贾跃亭全球寻找新韭菜
  9. js 正则中冒号代表什么_JS正则表达式一条龙讲解(从原理和语法到JS正则)
  10. 免谷歌android auto,Grid Autosport安卓版