allora nel programma sottostante mi viene dato un errore alla linea 62 (quella in rosso), l'errore è:
det.c: In function `det':
det.c:62: warning: passing arg 4 of `det' from incompatible pointer type
det.c:62: void value not ignored as it ought to becodice:#include <stdio.h> #define SIZE 2 /* PROTOTIPO FUNZIONE */ void scambia_righe(int **m, int size, int r1, int r2, int start); void det(int **m, int size, int start, int **ris); /* PROGRAMMA CHIAMANTE */ int main() { int **m; int i, j, n, *ris; printf("Inserisci la dimensione n: "); scanf("%d", &n); if (!(m = (int **)malloc(n*n*sizeof(int)))) abort(); for(i=0; i<n; ++i) for(j=0; j<n; ++j) { printf("Inserisci il valore dell'elemento (%d,%d): ", i+1, j+1); scanf("%d", &m[i][j]); } det(m,n,0, &ris); printf("Determinante = %d \n", ris); return 0; free(m); } void scambia_righe(int **m, int size, int r1, int r2, int start){ int i, tmp; for(i=start; i<size; ++i) { tmp = m[r1][i]; m[r1][i] = m[r2][i]; m[r2][i] = tmp; } } void det(int **m, int size, int start, int **ris) { int r; int sgn = 1; int risultato = 0; /* CASO DI UNA MATRICE 1x1 */ if(start == (size - 1)) *ris = (int *)m[size-1][size-1]; for(r=start; r<size; ++r) { if(r != start) { sgn = -1; /*scambiando due righe il determinante del minore cambia di segno*/ scambia_righe(m, size, start, r, start); } risultato += sgn * m[start][start] * det(m, size, start+1, &risultato); if(r != start) scambia_righe(m, size, start, r, start); } *ris = (int *)risultato; }

Rispondi quotando



