Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- double computeDeterminant(double matrix[255][255], unsigned char start, unsigned char end)
- {
- int i,j;
- double produs,produsmem;
- if(start!=end)
- {
- //Pas 2
- for(j=start+1; j<=end; j++)
- {
- if(matrix[start][j]!=0)
- {
- produs=1;
- produs*=matrix[start][start]/matrix[start][j];
- for(i=start; i<=end; i++)
- {
- matrix[i][j]*=produs;
- }
- produsmem*=produs;
- //Pas 3
- for(j=start+1; j<=end; j++)
- {
- for(i=start; i<=end; i++)
- {
- matrix[i][j]-=matrix[i][start];
- }
- }
- //Pas 4
- return matrix[start][start]*computeDeterminant(matrix,start+1,end)/produsmem;
- }
- //Pas 1
- else
- {
- for (i=start; i<=end; i++)
- {
- if (matrix[start][i]!=0)
- {
- for (j=start; j<=end; j++)
- {
- matrix[j][start]=matrix[i][start];
- }
- break;
- }
- }
- }
- }
- }
- else return 1;
- }
- int main()
- {
- int n;
- double matrix[255][255];
- unsigned char start,end;
- scanf("%d",&n);
- printf("%.2elf",computeDeterminant(matrix, 0, n-1));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement