C++ 程序无法显示从第二次迭代开始的输出 for(int i=0;i
您在内部循环中的内部测试:C++ 程序无法显示从第二次迭代开始的输出 for(int i=0;i,c++,C++,您在内部循环中的内部测试: for(int i=0;i<T;i++) // t test cases { int flag=0; //flag variable to check the output char A[3][3]; for(int j=0;j<3;j++) //Taking for(int k=0;k<3;k++) //Input cin>>A[j]
for(int i=0;i<T;i++) // t test cases
{
int flag=0; //flag variable to check the output
char A[3][3];
for(int j=0;j<3;j++) //Taking
for(int k=0;k<3;k++) //Input
cin>>A[j][k]; //in a character Array
//checking for letter 'l' in the character array and if other l's also exist or not
for(int j=0;j<2;j++)
for(int k=0;k<2;k++)
{
if(A[j][k]=='l')
{
if(A[j+1][k]=='l' && A[j+1][k+1]=='l')
flag++;
}
}
if(flag>0)
cout<<"yes"<<endl;
}
return 0;
我想应该是这样
if(A[j+1][k]=='l' && A[j+1][k+1]=='l')
flag++;
正如您在这里看到的,它工作正常:onlinegdb.com/r1VCS-FxN 当它失败时,你看不到结果,因为你没有“不”的理由 链接中的代码,以防它停止工作:
if(A[j+1][k]=='l' || A[j+1][k+1]=='l')
flag++;
#包括
使用名称空间std;
int main(){
常数int T=3;
我能不能认为这个逻辑是正确的,因为我需要同时检查相邻单元格的值,并且它们需要满足相同的条件。如果我理解正确,他希望“l”在“l”中模式,所以他的逻辑将是正确的是的,这是正确的。没有编译错误。但是从第二次迭代开始,没有显示任何输出。很抱歉,我没有完全理解他希望他的程序做什么!你确定这不起作用吗?我只是复制并粘贴了它,似乎对我来说很好。你可以在上面测试它:是的,我发现了w错了,谢谢!!我忘了写其他部分了。
#include <iostream>
using namespace std;
int main() {
const int T = 3;
cout << "T: " << T << endl;
for(int i=0;i<T;i++) // t test cases
{
int flag=0; //flag variable to check the output
char A[3][3];
for(int j=0;j<3;j++) //Taking
for(int k=0;k<3;k++) //Input
cin>>A[j][k]; //in a character Array
//checking for letter 'l' in the character array and if other l's also exist or not
for(int j=0;j<2;j++)
for(int k=0;k<2;k++) {
if(A[j][k]=='l') {
if(A[j+1][k]=='l' && A[j+1][k+1]=='l')
flag++;
}
}
cout << "Flags: " << flag << endl;
if(flag>0)
cout<<"yes"<<endl;
else
cout << "nope" << endl;
}
return 0;
}