#include <stdio.h> #include <stdlib.h> #define MAX 100 void leggiMatrice(float mat[MAX][MAX]); float mediaRiga(float vet[MAX]); void ordinaRighe(float mat[MAX][MAX]); void stampaMatrice(float mat[MAX][MAX]); void scambiarighe(float mat[MAX][MAX]); int r = 0; int c = 0; int main() { float mat[MAX][MAX]; float vetRiga[MAX]; float vetMedia[MAX]; float vetMin[MAX]; int primaColonna[MAX]; leggiMatrice(mat); printf("Matrice inserita:\n"); stampaMatrice(mat); for(int i=0; i<r; i++) { for(int j=0; j<c; j++) { vetRiga[j] = mat[i][j]; } vetMedia[i] = mediaRiga(vetRiga); } for(int i=0; i<r; i++) { mat[i][c] = vetMedia[i]; } c++; stampaMatrice(mat); ordinaRighe(mat); stampaMatrice(mat); scambiarighe(mat); printf("Matrice ordinata:\n"); stampaMatrice(mat); } void leggiMatrice(float mat[MAX][MAX]) { printf("Inserisci, per piacere, il numero di righe della matrice?\n"); scanf("%d",&r); printf("Inserisci, per piacere, il numero di colonne della matrice?\n"); scanf("%d",&c); printf("Inserisci, per piacere, la matrice?\n"); for(int i=0; i<r; i++) { for(int j=0; j<c; j++) { printf("Inserisci l'elemento di posto [%d][%d]:\n",i+1,j+1); scanf("%f",&mat[i][j]); } } } float mediaRiga(float vet[MAX]) { float temp =0; for(int i=0; i<c; i++) { temp = temp + vet[i]; } temp = temp/c; return temp; } void stampaMatrice(float mat[MAX][MAX]) { for(int i=0; i<r; i++) { for(int j=0; j<c; j++) { printf(" %.1f",mat[i][j]); } printf("\n"); } } void ordinaRighe( float mat[MAX][MAX]){ int min=0; float temp =0; for(int k=0; k<r; k++) { min =0; temp=0; for(int i=0; i<c; i++) { min = i; for(int j=i+1; j<c; j++) { if(mat[k][min]>mat[k][j]) { min = j; } } temp=mat[k][min]; mat[k][min] = mat[k][i]; mat[k][i] = temp; } } } void scambiarighe(float mat[MAX][MAX]){ float temp = 0; float ultimaCol[MAX]; int vetMin[MAX]; int min=0; for(int j=0; j<r; j++) { ultimaCol[j] = mat[j][c-1]; } for(int i=0; i<r; i++) { min = i; for(int j=i+1; j<r; j++) { if(ultimaCol[min]>ultimaCol[j]) { min = j; } } vetMin[i]=min; temp=ultimaCol[min]; ultimaCol[min] = ultimaCol[i]; ultimaCol[i] = temp; } temp = 0; for(int k=0; k<r; k++) { for(int i =0; i< c; i++) { temp = mat[vetMin[k]][i]; mat[vetMin[k]][i] = mat[k][i]; mat[k][i] = temp; } } }