c++ 编程语言 200

#include<iostream>#include<string.h>usingnamespacestd;/*runthisprogramusingtheconsole... #include <iostream>
#include <string.h>

using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

void RLC(char *s)//游程编码
{
int i=0;
while(*s)
{
if(*s=='1') i++;
else if(*s=='0')
{
printf("%d",i);
i=0;
}
s++;
}
if(i>0) printf("%d",i);//输出末尾可能存在的 1 个数
}

int main(int argc, char** argv) {
char s[]="11011100010101";
RLC(s);

return 0;
}
急求!!!上面的测试向量,如果里面的1的个数过多,例如00 110 111111111 1110 00 10 10 1,根据10进制的要求,需要进行切分为9个1和3个1,这里该怎么修改,才能得到结果为0029300111,谢谢了!
展开
 我来答
百度网友13654b5
2017-04-20 · 超过24用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:14.6万
展开全部
你这个代码明显不对,字符串循环测试*s,遇到0就结束了,不可能测整个串。
再者,你说你的串要输出0029300111,好像不对吧?源串最后5组是30111,你要的是300111,不知道你是不是打错了。何况即便是你打错了,源串怎么分组你也不告诉人家啊。更何况你的函数注释是游程编码,你这根本不是游程吧?算法你都还没理解。
最后,每次都得让我再说一遍,贴代码时请选编辑框里的“代码”按钮。
追问
谢谢你的建议,我说的你可能不理解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式