C++ 简单解决方案的输出不正确

C++ 简单解决方案的输出不正确,c++,string,C++,String,共同力量问题373A- 在对数组进行排序后,我尝试检查给定的条件,而不是使用多个if语句来计算每个数字的元素数。我得到的第一个测试用例的输出不正确(在问题链接中给出)。我的方法有什么问题?我应该在解决方案中更改什么 我的解决方案: #include<iostream> #include<cstring> using namespace std; int k,i,j,a; char panel[17],temp,output[4]; int main() { c

共同力量问题373A-

在对数组进行排序后,我尝试检查给定的条件,而不是使用多个if语句来计算每个数字的元素数。我得到的第一个测试用例的输出不正确(在问题链接中给出)。我的方法有什么问题?我应该在解决方案中更改什么

我的解决方案:

#include<iostream>
#include<cstring>
using namespace std;

int k,i,j,a;
char panel[17],temp,output[4];

int main()
{
    cin>>k;
    for(i=0;i<16;i++)
    cin>>panel[i];

    for(i=0;i<16;i++) //Bubble sort.
    {
        for(j=0;j<(15-i);j++)
        {
            if(panel[j]>panel[j+1])
            {
                temp=panel[j+1];
                panel[j+1]=panel[j];
                panel[j]=temp;
            }
        }
    }

    a=1;
    strcpy(output,"YES");
    for(i=0;i<16;i++)
    {
        if(panel[i]==panel[i+1])
        ++a;
        else
        a=1;

        if(a>(2*k));
        {
            strcpy(output,"NO");
            break;
        }
    }
    cout<<output;
}
#包括
#包括
使用名称空间std;
int k,i,j,a;
字符面板[17],温度,输出[4];
int main()
{
cin>>k;
对于(i=0;i>panel[i];

对于(i=0;i您在
if
语句后有一个分号:

    if(a>(2*k));

这意味着,它总是复制“否”并中断循环。将其删除。

如果
语句后面有一个分号:

    if(a>(2*k));
这意味着,它总是复制“否”并打破循环。删除它