Premetto che sono nuovo nel forum e non molto esperto con C (siate comprensivi...)
Non riesco a capire come mai il mio codice non viene compilato:
Potete darmi una mano?codice:#include <stdio.h> #include<iostream.h> #define dim 3 float pot(int ind) { if(ind%2==0)return 1; else return -1; } float det(float mat[dim][dim], int d) { int i,j,k; float D=0; if(d==1)D=mat[0][0]; for(i=0;i<d&&d>1;++i) { float matrid[d-1][d-1]; for(j=0;j<d;++j) { for(k=1;k<d&&j!=i;++k) { if(j<i){matrid[j][k-1]=mat[j][k];} if(j>i){matrid[j-1][k-1]=mat[j][k]; } } } D=D+pot(i)*mat[i][0]*det(matrid,d-1); } return D; } void mat() { int i,j; float m[dim][dim]; printf("scrivi la matrice %dx%d\n",dim,dim); for(i=0;i<dim;++i) { for(j=0;j<dim;++j) { scanf("%f",&m[i][j]); } } printf("%f\n",det(m,dim)); } int main() { mat(); system("pause"); return 0; }
P.S. Il programma attuale rende possibile il calcolo di una 3x3, ma basta cambiare il define iniziale per aumentare o diminuire la dimensione della matrice

)
Rispondi quotando


