问题标题: 酷町堂:1171 最大连续组长度(long)(70分)

0
0
已解决
王光裕
王光裕
资深光能
资深光能
#include<iostream>  
using namespace std;
int main ()
{
    long n,h=1,zs=1,j;
    cin>>n;
    char a[101];
    char zf=a[0];
    for (int i=0; i<n; i++)
        cin>>a[i];
    for (j=0; j<n-1; j++)
    {
        if (a[j]==a[j+1]) h++;
        else if (h>zs)
        {
            zs=h;
            zf=a[j];
            h=1;
        }
    }
    if(a[j]==a[n]) h++;
    else if (h>zs)
    {
        zs=h;
        zf=a[j];
        h=1;
    }
    cout<<zs<<endl;
    cout<<zf<<endl;
    return 0;
}                          

0
已采纳
陆姗姗
陆姗姗
资深守护
资深守护

第一点:你的两段elseif的代码部分不对,其他都没问题

else if (h>zs)
    {
        zs=h;
        zf=a[j];
        h=1;
    }

如果这样子写elseif的话是只有当a[j]!=a[j+1]并且h>zs的时候h才被赋值为1,但实际上只要a[j]!=a[j+1]时就需要h=1;

所以无论h>zs是否成立的时候h=1的步骤都是要的

 

第二点:

for (j=0; j<n-1; j++)
    {
        if (a[j]==a[j+1]) h++;
        else if (h>zs)
        {
            zs=h;
            zf=a[j];
            h=1;
        }
    }
    if(a[j]==a[n]) h++;
    else if (h>zs)
    {
        zs=h;
        zf=a[j];
        h=1;
    }

这部分的代码可以简化一下,a[n]不需要单独拿出来比较,直接在for循环里把j的范围改成j<=n-1就可以

0
芮奥运
芮奥运
高级光能
高级光能
int n,h=1,zs=1;
    cin>>n;
    char a[255];
    char zf=a[0];
    for (int i=0; i<n; i++)
    {
        cin>>a[i];
    }
    for (int i=0; i<n+1; i++)
    {

        if (a[i]==a[i+1])
        {
            h++;
            if (h>zs)
            {
                zs=h;
                zf=a[i];
            }
        }
        else
            h=1;
    }
    cout<<zs<<endl;
    cout<<zf<<endl;
0
0
时梓繁
时梓繁
修练者
修练者
 int n,h=1,zs=1;
    cin>>n;
    char a[255];
    char zf=a[0];
    for (int i=0; i<n; i++)
    {
        cin>>a[i];
    }
    for (int i=0; i<n+1; i++)
    {

        if (a[i]==a[i+1])
        {
            h++;
            if (h>zs)
            {
                zs=h;
                zf=a[i];
            }
        }
        else
            h=1;
    }
    cout<<zs<<endl;
    cout<<zf<<endl;
    return 0;

}

头文件

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
0
颜咏春
颜咏春
中级光能
中级光能
 for (int i=0; i<n; i++)
    {
        cin>>a[i];
    }
    for (int i=0; i<n+1; i++)
    {

        if (a[i]==a[i+1])
        {
            h++;
            if (h>zs)
            {
                zs=h;
                zf=a[i];
            }
        }
        else
            h=1;

}

我要回答