/* Realizzare un programma che; * 1- legge le dimensione e gli elementi di una matrice * 2- aggiunge una colonna alla matrice il cui i-esimo elemento * รจ pari alla somma degli element della riga i-esima. * 3- scambia le righe della matrice in modo tale che l'ultima * colonna risulti ordinata * 4- stampa a video la matrice risultante * * Realizzare i diversi punti in sottoprogrammi. */ #include <stdio.h> void leggimat(int mat[100][100], int* pn, int* pm); void stampamat(int mat[100][100], int n,int m); void aggiungic(int mat[100][100], int n, int *pm); void ordina(int mat[100][100],int n,int m); int main() { int mat[100][100], r,c; leggimat(mat,&r,&c); stampamat(mat,r,c); aggiungic(mat,r,&c); printf("\n matrice con colonna +1\n"); stampamat(mat,r,c); ordina(mat, r,c); stampamat(mat,r,c); } void leggimat(int mat[100][100], int* pn, int* pm) { printf("inserisci num righe\n"); scanf("%d",pn); printf("inserisci num colonne\n"); scanf("%d",pm); for(int i=0;i<*pn;i++) for(int j=0;j<*pm;j++) { printf("inserici m[%d][%d]\n",i,j); scanf("%d",&mat[i][j]); } } 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 aggiungic(int mat[100][100], int n, int *pm) { int somma; for( int i=0;i<n;i++) { somma=0; for(int j=0;j<*pm;j++) somma=somma+mat[i][j]; mat[i][*pm]=somma; } *pm=*pm+1; }//aggiungi void ordina(int mat[100][100],int n,int m) { int temp; for(int i=0;i<n;i++) for(int j=0;j<n-1;j++) if(mat[j][m-1] >mat[j+1][m-1]) { for(int k=0;k<m;k++){ temp=mat[j][k]; mat[j][k]=mat[j+1][k]; mat[j+1][k]= temp; } } }