Buongiorno devo realizzare questo programma che calcola il determinante di una matrice ottenuta generando numeri casuali (e altre cosette)
il problema sta nel fatto che non riesco a fargli calcolare il determinante, qualcuno può dirmi dove sbaglio?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int main()
{
int a[3][3], b[3], c[3][6], i, j, X, seed, Y, z, deta;
seed = time(NULL);
srand(seed);
for( i=0; i<3; i++ ) { /* Genera numeri casuali tra [0,10] e li mette in b[i][j] */
X = rand()%11;
b[i] = X;
}
for( i=0; i<3; i++ ) {
printf("%d ",b[i]); /* Stampa b[i][j] */
printf("\n");
}
for( i=0; i<3; i++ ) {
for ( j=0; j<3; j++ ) { /* Genera numeri casuali tra [-9,9] e li mette in a[i][j] */
Y = rand()%19 - 9; /* copia a[i][j] in c[i][j+3] */
a[i][j] = Y;
c[i][j] = a[i][j];
c[i][j+3] = a[i][j];
}
}
for( i=0; i<3; i++ ) {
printf("\n");
for ( j=0; j<3; j++ ) { /* Stampa a[i][j] */
printf("%d ",a[i][j]);
}
}
printf("\n");
for( i=0; i<3; i++ ) {
printf("\n");
for ( j=0; j<6; j++ ) { /* Stampa c[i][j] */
printf("%d ",c[i][j]);
}
}
printf("\n");
printf("\nIl sistema di equazioni da risolvere e': \n"); /* Scrive il sistema di equazioni da risolvere eliminando il coefficiente se
a[i][j] = 1 e eliminado anche l'incognita se vale 0 */
for( i=0; i<3; i++) {
for( j=0; j<3; j++ ) {
if( a[i][j] != 0 ) {
if ( a[i][j] > 0 )
printf("+");
if ( a[i][j] != 1 ) {
printf("%dx_%d",a[i][j],j+1);
}
else {
printf("x_%d",j+1);
}
}
else {
printf(" ");
}
}
printf("=%d",b[i]);
printf("\n");
}
printf("\n");
int diag1 = 0;
for( z=0; z<=2; z++) {
i = 0;
for( j=0; j<=2; j++) {
diag1 = c[i][j] * c[i+1][j+1] * c[i+2][j+2] + diag1;
}
}
printf("diag1 vale %d\n",diag1);
int diag2 = 0;
for( z=0; z<=2; z++) {
i = 2;
for( j=0; j<=2; j++) {
diag1 = c[i][j] * c[i-1][j+1] * c[i-2][j+2] + diag2;
}
}
printf("diag2 vale %d\n",diag2);
deta = diag1 - diag2;
printf("\nIl determinante della matrice A vale %d\n", deta);
return 0;
}