我面临一个问题
#include<iostream>
using namespace std;
bool check(int input)
{
int count = 0;
int temp;
int val[] = { 2,0,2,1 };
temp = input;
while (temp != 0) {
count++;
temp /= 10;
}
int *arr = new int[count];
for (int i = count; i >= 0; i--)
{
arr[i] = input % 10;
input /= 10;
}
temp = 0;
int res = count;
for (int j = 0; j < 5; j++)
{
for (int k = 0; k < res; k++)
{
if (val[j] == arr[k])
{
cout << "CHECKING : " << arr[k] << endl;;
j = j + 1;
for (int l = k; l < (count - 1); l++)
{
arr[l] = arr[l + 1];
}
res=res-1;
temp++;
k = 0;
if (temp == 4)
{
return true;
}
}
}
}
cout << temp;
return false;
}
int main()
{
int input;
cin >> input;
if (check(input) == true)
{
cout <<endl << "YES!!" << endl;
}
else
{
cout <<endl <<"NO!!" << endl;
}
}
这个程序我必须检查输入数字是否有 2021 数字如果输入是 2002021 输出应该是或输入是 2002024 输出应该是 no 因为现在缺少 1(2021) 事情是我的程序在逻辑上工作正常但我不知道我的数组最后一个元素是如何丢失的,就像我输入 200022021 = 那么输出将是 no 但是如果我给 200022012 它是说是的,我不知道我的数组的最后一个元素是如何丢失的。