我必须做这个练习:
编写一个 C++ 函数,给定一个具有两个 NxN 大小的整数的数组,如果行具有所有相同的元素(即使在不同的位置),则返回 true,否则返回 false。
这是我的代码:
#include <iostream>
using namespace std;
const int N = 5;
bool fool ( const int a [N][N])
{
int x,y = 0;
int j=0;
int i=0;
bool check[N] = {false};
bool verify = false;
for (i=0; i<N; i++)
{
check[i] = false;
}
while(j<N && !verify )
{
if(a[x][i]==a[y][j] && !check[j] )
{
check[j]=true;
verify=true;
}
j++;
}
return verify;
}
int main ()
{
const int a[N][N] = {{1,3,5,6,7},
{5,6,7,1,3},
{1,6,5,3,7},
{6,1,3,5,7},
{6,5,1,7,3}};
if ( fool(a))
{
cout << " in all rows there are the same elements";
}
else
{
cout << " wrong, . ";
}
return 0;
}
但是程序崩溃了。我该如何解决?