博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1020 ZOJ2478 Encoding
阅读量:5884 次
发布时间:2019-06-19

本文共 1809 字,大约阅读时间需要 6 分钟。

问题链接:。入门练习题,用C语言编写程序。

这是一个输入流处理的程序,最佳方案是一边读入一边处理。

这里给出两个C语言程序,有个比较。一个是用gets()函数把每行的字符串读入到字符数组中再行处理;另外一个是用getchar()函数逐个读入字符处理。 

AC的C语言程序(正解)如下:

/* HDU1020 ZOJ2478 Encoding */#include 
#define MAXN 10000int main(void){ int n, count; char in, c; scanf("%d", &n); getchar(); while(n--) { count = 0; c = '\0'; for(;;) { in = getchar(); if(in == '\n') break; if(in != c) { if(count != 0) { if(count == 1) putchar(c); else printf("%d%c", count, c); } c = in; count = 1; } else count++; } if(count > 0) { if(count == 1) putchar(c); else printf("%d%c", count, c); } printf("\n"); } return 0;}
另外一个版本,AC的C语言程序如下:
/* HDU1020 Encoding */#include 
#include
#define MAXN 10000int main(void){ int n, count; char s[MAXN+1], c, *p; gets(s); n = atoi(s); while(n--) { gets(s); count = 0; c = '\0'; p = s; while(*p) { if(*p != c) { if(count != 0) { if(count == 1) printf("%c", c); else printf("%d%c", count, c); } c = *p; count = 1; } else count++; p++; } if(count > 0) { if(count == 1) printf("%c", c); else printf("%d%c", count, c); } printf("\n"); } return 0;}
 

转载于:https://www.cnblogs.com/tigerisland/p/7564570.html

你可能感兴趣的文章
eclipse 中配置DBCP数据源的步骤
查看>>
一种分页的实现
查看>>
js 实现insertAfter
查看>>
在Eclipse配置Tomcat服务器+JSP实例创建
查看>>
一种Web服务的go语言实现
查看>>
转载-- 魔兽哈希算法封装和测试
查看>>
下载文件
查看>>
(算法)排序
查看>>
Ajax传值原理.aspx文档
查看>>
一个微软的DDD架构图
查看>>
使用git时出现Please make sure you have the correct access rights and the repository exists.问题已解决。...
查看>>
分析称微软不应再为WP弱势地位推脱 借口已失效
查看>>
Spring核心实现篇
查看>>
css动态样式
查看>>
Sql Server查询性能优化之走出索引的误区
查看>>
回忆下高中的数学归纳法
查看>>
CentOS7 'Username' is not in the sudoers file. This incident will be reported
查看>>
HashMap,HashTable,HashSet区别(转)
查看>>
关于php上传文件
查看>>
360浏览器内核控制标签meta说明
查看>>