0
已解决
王子健
初级天翼
初级天翼
#include<iostream>
using namespace std;
int main()
{
int 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;
}
这段代码有什么问题
望大神告知
为我修正代码
如果对了,我就采纳
一定要准确
谢谢
Thanks♪(・ω・)ノ
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
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;
0