double** complement(double** arr, int size, int rowIndex, int colIndex){
double** cArr = CreateArr(size);
for (int i = 0, x = 0; i < size; x++, i++){
if (x == colIndex) x++;
for (int j = 0, y = 0; j < size; y++, j++){
if (y == rowIndex) y++;
*(*(cArr + i) + j) = *(*(arr + x) + y);
}
}
return cArr;
}
double det(double** arr, int size){
double result = 0;
if (size == 2){
return arr[0][0] * arr[1][1] - arr[0][1] * arr[1][0];
}
else{
for (int i = 0; i < size; i++){
double** cArr = complement(arr, size - 1, 0, i);
result += arr[0][i] * det(cArr, size - 1);
freeArr(cArr, size - 1);
}
}
return result;
}
Ogólnie problem jest taki- kiedy wywołam sobie rysowanie arr w ten sposób:
if (size == 2){
printArr(arr, size);
}
to dostaję:
Mogę też zrobić:
if (size == 2){
printf("Tablica recznie: \n%d\t%d\n%d\t%d\n\n", arr[0][0], arr[0][1], arr[1][0], arr[1][1]);
double a = arr[0][0];
printf("Liczba recznie: \n%d\t%d\t%d\t%d\n\nTablica z funkcji:\n", a, a, a, a);
printArr(arr, size);
printf("====================================================\n");
re
Wtedy:
Ktoś ma jakikolwiek pomysł gdzie szukać błędu? Czemu niby nieprawidłowo (choć z wyjątkiem funkcji wypisującej) odwołuje się do tablicy?