/* PROGRAMMAZIONE IN C */ /* File: aree.c */ /* Soluzione proposta esercizio "Calcolo di aree" */ #include <stdio.h> void leggimat(int mat[100][100],int *n,int*m); int confrontar(int mat[100][100],int m, int r1,int r2); void eliminar(int mat[100][100], int *n, int m, int r); void stampamat(int mat[100][100],int n,int m); int main() { int mat[100][100]; int n,m; leggimat(mat,&n,&m); for(int i=0;i<n-1;i++) for(int j=i+1;j<n;j++) if(confrontar(mat,m,i,j)) { printf("riga %d/%d uguale\n",j,n); eliminar(mat,&n,m,j); j--; } stampamat(mat,n,m); } void stampamat(int mat[100][100],int n,int m) { for(int i=0;i<n;i++) { printf("\n"); for(int j=0;j<m;j++) printf("%d\t",mat[i][j]); } } void eliminar(int mat[100][100], int *n, int m, int r) { for(int i=r;i<*n-1;i++) for(int j=0;j<m;j++) mat[i][j]=mat[i+1][j]; *n=*n-1; } int confrontar(int mat[100][100],int m, int r1,int r2) { int uguali=0; int i=0; while((mat[r1][i]==mat[r2][i]) && (i<m)) i++; if(i==m) uguali=1; return uguali; } void leggimat(int mat[100][100],int *n,int*m) { printf("inserisci n:\n"); scanf("%d",n); printf("inserisci m:\n"); scanf("%d",m); for(int i=0;i<*n;i++) for(int j=0;j<*m;j++) { printf("m[%d][%d]=",i,j); scanf("%d",&mat[i][j]); } }