行列に正の行(すべての正の要素を持つ行を意味する)があるかどうかを(k回)チェックするように求められる大学の演習を行う必要があります.forループのインデックスに何か問題があると思いますが、見つけることができません間違い。
cout ステートメントをカウンターに適用してデバッグしようとすると、「101」が返されるため、コンパイラが正の行に「1」を割り当て、負の行に「0」を割り当てるようです
これは私が書いたコードです:
#include <iostream>
using namespace std;
const int N = 3;
bool positive(int a[N][N], int row[N], int x) {
bool condition = false;
for(int i = 0; i < N; i++) {
row[i] = a[x][i];
}
int j = 0;
while(j < N) {
if(row[j] >= 0) {
condition = true;
} else {
condition = false;
}
j++;
}
return condition;
}
bool function (int a[N][N], int z, int j, int k) {
int b[N];
int c[N];
int count = 0;
if(positive(a, b, z) && positive(a, c, j)) {
count++;
}
if(count == k) {
return true;
} else {
return false;
}
}
int main() {
int a[N][N] = {
{
2, 8, 6
}, {
-1, - 3, - 5
}, {
6, 10, 9
}
};
int k = 2;
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++) {
if(function (a, i, j, k)) {
cout << "OK";
} else {
cout << "NO";
}
}
}
return 0;
}