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:
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;
}
Potete darmi una mano?
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