2
已解决
梁彦博
初级光能
初级光能
题目内容:
小C喜欢玩游戏,有一天他在电脑上发现了一个叫“数字消消乐”的游戏,其规则如下: 给定一个长度为N的整型数组(正整数),指定一个数a,如果该数组中有3个及3个以上的a连续出现,则该数字将会从数组中消除。小C突然想到可以用编程来解题,请聪明的你帮小C编程实现该功能。
本人错误代码:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int shu,i,j,k=0,c;
int a[100];
cin>>shu>>c;
for (i=1;i<=shu;i++)
{
cin>>a[i];
}
for (i=1;i<=shu;i++) if (a[i]==c) k++;
for (i=1;i<=shu;i++) if (k>=3)
{
if (a[i]!=c) cout<<a[i]<<" ";
}
return 0;
}
题目链接:点击此处
0
已采纳
张国鉴
资深守护
资深守护
for (int i=1;i<=n;i++){
if (a[i]==x&&a[i+1]==x&&a[i+2]==x){
while (a[i]==x){
a[i]=0;
i++;
}
}
}
双重循环判断三个的时候将为a的数字赋0,在输出时处理
0
0
0
张睿杰
初级天翼
初级天翼
for(int k=i;k<=n-1;k++)
{
if(a[k]==m) ans++;
else
{
break;
}
// cout<<"ans="<<ans<<endl;
}
if(ans>=3) i=i+ans-1;
else cout<<a[i]<<' ';
ans=0;
这是核心
剩下的你自己思考
0
王焜
新手守护
新手守护
for (int i=1;i<=n;i++){
if (a[i]==x&&a[i+1]==x&&a[i+2]==x){
while (a[i]==x){
a[i]=0;
i++;
}
}
}
双重循环判断
0
赵思聪
初级守护
初级守护
for(int i=1;i<=b;i++)
{
for(int j=i;j<=b;j++)
{
if(a[j]==c)
{
t++;
}
else
{
break;
}
}
if(t>=3)
{
i=i+t-1;
}
else
{
cout<<a[i]<<" ";
}
t=0;
}
注意要减一;否则可能会漏数字
0