问题标题: 酷町堂:1213 数字消消乐怎么写

0
0

0
已采纳
邵逸儒
邵逸儒
中级天翼
中级天翼
定义全局 a[101];
    定义 n,m,ans=0;
    输入n,m;
    循环(int i=0;i<=n-1;i++) 输入a[i];
    循环(int i=0;i<=n-1;i++) 
    {
            循环(int k=i;k<=n-1;k++)
            {
                如果(a[k]==m) ans++;
                否则 break;
            }
        如果(ans>=3) i=i+ans-1;
        否则 输出a[i],' ';
        ans=0;
    }
    输出endl;

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
谢祎恒
谢祎恒
中级守护
中级守护

思路:题目说指定一个数a,如果该数组中有3个及3个以上的a连续出现,则该数字将会从数组中消除,即先判断i,i+1,i+2(数组中)是否是一样的数,之后用while循环,只要一直是这个数,就赋值为数据范围外的任意一个数,最后输出时只要不是那个数,就输出,伪代码如下

#include<iostream>
using namespace std;
int main()
{
    int ;
    定义
    cin>> >> ;
    for(i=0;i<n;i++)
    {
        cin>> ;
    }
    输入
    for(i=0;i<n;i++)
    {
        if(判断是否是连续的三个一样的数)
        {
            while(如果一直等于那个数的话)
            {
                则将此数赋值为数据范围之外的数(如-1)
            }
        }
    }
    for(i=0;i<n;i++)
    {
        if(不等于-1(此数可更改)) cout<< <<" ";输出
    }
    return 0;
}
0
0
我要回答