0
已解决
颜咏春
中级光能
中级光能
Wrong Answer:60分
颜咏春的测评结果:
测试点#1测评结果 : Accepted时间 : 0ms
测试点#2测评结果 : Wrong Answer时间 : 0ms偷看一下数据测试点#3测评结果 : Accepted时间 : 0ms
测试点#4测评结果 : Wrong Answer时间 : 0ms偷看一下数据测试点#5测评结果 : Accepted时间 : 0ms
测试点#6测评结果 : Accepted时间 : 0ms
测试点#7测评结果 : Wrong Answer时间 : 0ms偷看一下数据测试点#8测评结果 : Wrong Answer时间 : 0ms偷看一下数据测试点#9测评结果 : Accepted时间 : 0ms
测试点#10测评结果 : Accepted时间 : 0ms
我的提交(cpp):
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<algorithm> using namespace std; int main() { 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 j=0; j<n+1; j++) { if (a[j]==a[j+1]) h++; else if (h>zs) { zs=h; zf=a[j]; h=1; } } cout<<zs<<endl; cout<<zf<<endl; return 0; }
0
已采纳
杨舰中
高级守护
高级守护
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
这些都不要
0
0
陆姗姗
资深守护
资深守护
你的第二个for循环里的elseif那里写的不对
else if (h>zs) 的话是当a[j]!=a[j+1]&&h>zs的同时才执行下面的三个语句
但是是需要当a[j]!=a[j+1]的时候就要把h重置为1了,也就是h=1不管h是否大于zs的时候都要执行
0
栾峻岩
初级天翼
初级天翼
for (int j=0; j<n+1; j++)
应是:
for (int j=0;j<n-1;j++)
j=n-1时,就没有和他比较的字母了!!
你的循环里面应改为:
if (a[i]==a[i+1])
{
num++;
if (num>max)// 打擂台,比大小!
{
max=num;// 替换
max2=a[i];//这个字母别忘了替换哦!
}
}
else
num=1;
你的判断错误,如果不连续的话就应该为1.
还要打擂台(只要是连续就行)。
最后输出max,和max2,(或者按你的输出也行,我的max是次数,max2是字母(大写的),max2是char类型的)
0
0