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

本文共 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

你可能感兴趣的文章
ASP.NET MVC集成EntLib实现“自动化”异常处理[实例篇]
查看>>
C# Attribute
查看>>
用Hadoop1.0.3实现KMeans算法
查看>>
[Z]Computer Modern的故事
查看>>
Groovy闭包深入学习 - [203] 一直都有新高度 - ITeye技术网站
查看>>
[C#]DataTable常用操作总结【转】
查看>>
JdbcTemplate查询数据 三种callback之间的区别
查看>>
GBK
查看>>
Linux的nm查看动态和静态库中的符号
查看>>
hrbeu 哈工程 Who Is In Front of Me
查看>>
Linux命令行下常用svn命令
查看>>
一个form中对应多个动作
查看>>
注意!ASP.NET MVC 3 的一个 OutputCache 问题
查看>>
androidalertDialog无法显示按钮的bug
查看>>
跟我一起学习ASP.NET 4.5 MVC4.0(四)
查看>>
时钟周期/指令周期/机器周期/总线周期
查看>>
Python 开发者应该知道的 7 个开发库
查看>>
mysql索引之九:重复索引和冗余索引,索引和锁
查看>>
魔方阵
查看>>
【其他】对于本科毕业论文想说一些话
查看>>