C语言简单小程序,写出一个函数,统计出串中0或1最大连续出现的次数

多次仍硬币,总会连续多次同一面的情况,把每次的实验结果记录下来,形成一个串字符0,1分别代表正面、反面向上写出一个函数,统计出串中0或1最大连续出现的次数,函数原型为:u... 多次仍硬币,总会连续多次同一面的情况,把每次的实验结果记录下来,形成一个串字符0,1分别代表正面、反面向上
写出一个函数,统计出串中0或1最大连续出现的次数,函数原型为:
unsigned int max_sub_seq(char* s)
参数为待处理的字符串,返回值为最大连续出现的次数
要求有主程序,便于我测试正确性
展开
 我来答
百度网友42a004c
2012-11-10
知道答主
回答量:5
采纳率:0%
帮助的人:6250
展开全部
将字符串以一维数组存放,用两个指针p1、p2,一前一后,当p1指向第一个结点,p2指向第二个结点,判断p1->data是否与p2->data相等。可以写三个函数0的最大连续次数,1的最大连续次数,还有指针移动的函数,两个计数的……或者直接跟0和1比较,不知是否行的通^-^
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友017eb58db
2012-11-10 · 超过29用户采纳过TA的回答
知道答主
回答量:85
采纳率:0%
帮助的人:73.7万
展开全部
#include <stdio.h>
#define MAX_SIZE (100)
unsigned int max_sub_seq(char* s);
int main()
{
char Array[MAX_SIZE];
printf("Please input:\n");
scanf("%s",Array);
printf("Max is: %d\n",max_sub_seq(Array));
return 0;
}
unsigned int max_sub_seq(char* s)
{
unsigned int count0 = 1;
unsigned int count1 = 1;
unsigned Max = 1;
char temp;
int iLoop(0);
while(('a' != s[iLoop]) && ('A' != s[iLoop]))
{
temp = s[iLoop];
++iLoop;
if ('1' == s[iLoop])
{
if (temp == s[iLoop])
{
++count1;
}
else
{
count1 = 1;
}
}
else if ('0' == s[iLoop])
{
if (temp == s[iLoop])
{
++count0;
}
else
{
count0 = 1;
}
}
if (count0 > Max)
{
Max = count0;
}
if (count1 > Max)
{
Max = count1;
}
}
return Max;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式