当前位置: 首页 > news >正文

浙江省网站建设公司成都五月花网页设计培训

浙江省网站建设公司,成都五月花网页设计培训,网站域名在哪里申请,公司营销网站制作前言 NWAFU 2023阶段二 A 一、题目描述 题目描述 “行程长度编码#xff08;Run-Length Encoding#xff0c;RLE#xff09;”是一种无损压缩编码方法#xff0c;其核心思想是依次记录符号序列中的每个字符#xff08;忽略大小写#xff09;及其重复出现的次数。例如用…前言 NWAFU 2023阶段二 A 一、题目描述 题目描述 “行程长度编码Run-Length EncodingRLE”是一种无损压缩编码方法其核心思想是依次记录符号序列中的每个字符忽略大小写及其重复出现的次数。例如用户输入字符序列字符串AaABBBbCBB则其RLE编码的结果为3A4B1C2B。 下面的代码实现对输入字符串的RLE编码现要求在函数int rle(char *code, const char *seq);及函数readSeq(char *seq, int n);定义中的五个空白处填充适当的表达式完成程序功能。 其中rle()函数形参seq为长度在(0, 80]间(strlen(seq)0strlen(seq)≤80)的全部由大小写英文字母组成的字符串指针形参code为RLE编码后的结果字符串指针。编码正常结束函数返回0如字符串指针seq为空或字符串长度不合法时不进行编码函数直接返回-1当字符串seq中出现非英文字母的其他字符时也不进行编码函数直接返回-2。 readSeq()从键盘读取最多n个字符到seq字符串中以回车符或EOF字符为结束标志。 请使用wget从http://202.117.179.201/attach/P1551.c获取需要填空的代码。完成设计rle()、readSeq()等函数并在本地完成测试后仅提交rle()、readSeq()函数及其调用的自定义函数的实现代码。 #include stdio.h #include string.h#define MAX_SEQ_LEN 80int rle(char *code, const char *seq); int readSeq(char *seq, int n);int main() {char seq[MAX_SEQ_LEN 1] { 0 };char code[2 * MAX_SEQ_LEN 1];int r;readSeq(seq, MAX_SEQ_LEN);r rle(code, seq);switch (r) {case 0:printf(%s\n, code);break;case -1:printf(Length is inValid.\n);break;case -2:printf(Has inValid character.\n);break;}return 0; } /* 以上代码禁止提交 */ int readSeq(char *seq, int n) {int ch, k;k 0;while ((ch getchar())) {if (__________(1)_________)break;seq[k] ch;}_____(2)______;return k; }int rle(char *code, const char *seq) {int i, len 0;char *p;if (__________(3)____________)return -1;p (char *)seq;len 0;while (____(4)____) {char token *p;i 1;token 0xDF;if (token Z || token A)return -2;while (_________(5)__________) {i;}len sprintf(code, %d%c, i, token);code len;}*code \0;return 0; } 样例输入 KAAAEE 样例输出 1K3A2E 二、设计步骤 分析程序结构通过readSeq函数读入seq字符串在rle函数中对字符串编码并将结果输出到code中。 readSeq函数与我们日常使用的s_gets()和Readline()完全相同考查读入条件和在结尾添加空字符在此不再赘述。 rle函数为该程序核心块。我们在解决问题“删除子串”时为了避免破坏原串对原串进行了一次拷贝然后在其拷贝上进行操作。而这个函数在对字符串进行操作时用了一个巧妙的方法它定义了一个指针常量p注指针常量不能修改地址指向的但可以修改指针指向的地址并将seq的首地址赋给p通过再循环内对p自增实现遍历操作有效保证了程序稳定并避免了内存的浪费。 因此如何对p进行合理的自增操作便成为了一个难点。p在每个外层while循环里的的自增长度取决于 i而 i 的初始化是在循环内完成的显然不能在4中进行此操作。因此我们将p自增语句填在5中同时加上一个判断条件这里不熟悉 0xDF 的同学可以复习一下位运算。 调试过程中出现的运行错误是忽略了seq为NULL的情况在这种情形下我们如果没有在rle函数循环开始前剔除它那么在把seq的首地址赋给p后p在第二个while循环中会进行一次自增此时p就会访问一处未经声明的空间出现运行错误。 题解 int readSeq(char *seq, int n) {int ch, k;k 0;while ((ch getchar())){ if (k n || ch \n || ch EOF) //(1) break;seq[k] ch;}seq[k] \0; //(2)return k; }int rle(char *code, const char *seq) {int i, len 0;const char *p;if (seq NULL || strlen(seq) 0 || strlen(seq) 80) //(3)return -1;p seq;len 0;while (*p) //(4){char token *p;i 1;token 0xDF;if (token Z || token A)return -2;while (*p (*p 0xDF) token) //(5){i;}len sprintf(code, %d%c, i, token);code len;}*code \0;return 0; } 欢迎在评论区讨论  总结 NWAFU 2023阶段二 A
http://www.zqtcl.cn/news/950010/

相关文章:

  • 乔拓云智能建站官网登录入口怎么样做网站卖农产品
  • 怎么维护好网站网站的域名每年都要续费
  • 运动网站模板佛山三水区有没有网站建设公司
  • 申请微官网的网站国外域名注册商网站
  • 集团公司网站建设建设中学校园网站的来源
  • 产品展示网站含后台网站模板下载网站开发什么语言好
  • 做知乎网站的图片如何设计好网站
  • 广州企业网站推广织梦学校网站模板
  • 国内响应式网站案例深圳住房和城乡建设局网站
  • 网页制作网站首页中国建筑论坛网
  • 众创空间网站建设少年宫网站建设模块
  • 企业营销型网站的内容科技公司取名大全
  • 哈尔滨云建站模板投资公司的钱从哪里来
  • 海南做网站公司哪家好中国人做外贸生意的网站
  • 没有网站怎么做cpa成都百度推广公司地址
  • 龙湖地产 网站建设高端上海网站设计公司
  • 触屏手机网站模板装修设计软件排名
  • 怎么做盗文网站郑州建设教育培训中心
  • 网站安全解决方案嵌入式软件工程师培训
  • 怎么做一种网站为别人宣传网站界面切片做程序
  • 麻涌网站建设河北网站建设联系方式
  • 建设银行官方网站打不开啊寮步仿做网站
  • 一个人可做几次网站备案峰峰网站建设
  • 怎么盗号网站怎么做北京高端网站设计外包公司
  • 著名的淘宝客网站wordpress博客内容预览
  • 成都网站seo公司甘肃网站建设推广
  • 做网站加班网站项目意义
  • 在虚拟机中如何做二级域名网站个人网站做哪种能赚钱
  • 贵州建设水利厅考试网站wordpress主查询翻页
  • 网站优化网络推广seo天津建设工程信息网几点更新