C : rekursiv definierte Programm zu berechnen, Determinante einer matrix

Kann ich nicht verstehen, warum dieses Programm ist die Produktion von falschen Faktor Werte für die Matrizen. Dieses Programm nutzt die rekursiven Aufrufe der Funktion func() wandelt das argument matrix, um seine kleinere, die dann letztendlich reduziert auf ein einziges element. Bitte um Hilfe, Was ist der Fehler in diesem code..??

#include<stdio.h>
#include<math.h>
void display_(int arr[][4])
{
    int i,j;
    putchar('\n');
    for(i=0;i<4;i++)
        {for(j=0;j<4;j++)
            printf("%d\t",arr[i][j]);
        printf("\n");
        }
}
int func(int arr[][4],int i,int j,int order)
{
    if(order==1)
        return arr[0][0];
    return(pow(-1,i+j)*arr[i][j]*func(arr,i+1,j+1,order-1));
}
int main()
{
    int i,j,matrix[4][4];
    printf("\nEnter the elements to the matrix : ");
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
            scanf("%d",&matrix[i][j]);
    display_(matrix);
    printf("\nDeterminant : %d",func(matrix,0,0,4));
}
Sollte das Etikett C und nicht C++. Es gibt keine C++ im code, und Sie würde nicht schreiben Sie es, wie dies in C++.
Auch, in Fällen wie diesem, func wäre viel klarer, wenn Sie verwendet nur eine einzige return, mit dem ternären operator.
Sorry sir, Sie haben Recht..

InformationsquelleAutor pacman7845421 | 2013-10-17

Schreibe einen Kommentar