Il codice per la memoria allocata dinamicamente è questo:
Devo scrivere una funzione per trovare uguali inseriti nella matrice, sia in orizzonatale che verticale.codice:/* Alloca la memoria per una matrice di dimensione n e ne restituisce un puntatore. */ TMatrice alloca_matrice(int n) { TMatrice matrice; int i; /* alloco il vettore delle righe. Ogni elemento di questo vettore è un puntatore */ if(!(matrice = (TMatrice) malloc (n * sizeof(int *)))) { fprintf(stderr,"Errore di allocazione per la matrice\n"); return 0; } /* per ogni riga alloco le colonne */ for (i=0; i<n; i++) { if(!(matrice[i] = (int *) malloc (n * sizeof(int)))) { fprintf(stderr,"Errore di allocazione per la i-esima posizione \"%d\"\n",i); return 0; } } return matrice; } /* Libera la memoria allocata da alloca_matrice */ void libera_matrice(TMatrice *matrice, int n) { int i; for (i=0; i<n; i++) free((*matrice)[i]); free(*matrice); } void inserimento(TMatrice matrice, int n){ int i,j; for(i=0 ; i<n ; i++) for(j=0 ; j<n ; j++) { /*printf("Inserisci elemento di riga %d e colonna %d: " ,i , j);*/ scanf("%d",&matrice[i][j]); } } void stampa_matrice(TMatrice matrice, int n){ int i,j; for (i=0;i<n;i++) { for (j=0;j<n;j++) printf("%d ", matrice[i][j]); printf("\n"); } }
Esempio
1 2 1
3 4 5
6 2 8
deve trovare gli uni in verde che sono uguali e i due rossi, in modo poi da richiamare una funzione che mi dice di non_annerire il numero che c'è trai 2 numeri uguali, in questo caso il 2 rosso stesso e il 4!!
Suggerimenti!!!!!![]()

Rispondi quotando