私はこの演習をしなければなりません:
2 つの NxN サイズの整数の配列が与えられた場合に、行がすべて同じ要素 (場所が異なっていても) を持つ場合は true を返し、そうでない場合は false を返す C++ 関数を記述します。
これは私のコードです:
#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;
}
しかし、プログラムはクラッシュします。どうすれば修正できますか?