Va bene! Non da nessun errore, ma nel momento in cui eseguo il programma, arriva all'ultimo punto ma non mi mostra la matrice con i valori scambiati, non me la stampa proprio, non esce nulla! (il punto in questione è il secondo che leggi nel commento sotto alla libreria).
#include <stdio.h>
#define n 100
/*
• Leggere una matrice quadrata di interi. //DONE
• Scambiare il massimo di una colonna con una posizione specifica
*/
void leggiFile(FILE *fp,int mat[][n],int *r, int *c);
void scriviFile(int mat[][n],int r, int c);
void maxCol(int mat[][n],int r, int c,int col, int maxc);
main()
{
//DICHIARAZIONE VARIABILI
FILE *fp;
int mat[n][n];
int maxc;
int r;
int c;
int j;
int i;
int col;
//APERTURA FILE
fp=fopen("input.txt","r");
if (fp==NULL)
printf("\nERRORE NELL'APERTURA DEL FILE!!\n");
else{
leggiFile(fp,mat,&r,&c);
printf("\nLA MATRICE CONTENUTA NEL FILE E' LA SEGUENTE:\n");
scriviFile(mat,r,c);
printf("\n\n");
maxCol(mat,r,c,col,maxc);
}
}
void leggiFile(FILE *fp,int mat[][n],int *r, int *c){
fscanf(fp,"%d",r);
fscanf(fp,"%d",c);
printf("\n");
for (int i=0; i<*r; i++)
for (int j=0; j<*c; j++){
fscanf(fp,"%d",&mat[i][j]);
}
}
void scriviFile(int mat[][n],int r, int c){
for (int i=0; i<r; i++){
printf("\n");
for (int j=0; j<c; j++){
printf("%d\t",mat[i][j]);
}
}
}
void maxCol(int mat[][n],int r, int c, int col, int maxc){
printf("\nInserire la colonna:\n");
scanf("%d",&col);
maxc=0;
int temp;
for (int i=0; i<r; i++){
int j=col;
printf("%d\t",mat[i][j]);
if (maxc<mat[i][col]){
maxc=mat[i][col];
}
}
printf("\n\nIl massimo della colonna %d e': %d\n",c,maxc);
printf("\nInserire la coordinata della riga dove si vuole sostituire il massimo:\n");
scanf("%d",&r);
printf("\nInserire la coordinata della colonna dove si vuole sostituire il massimo:\n");
scanf("%d",&c);
printf("\nIl valore avente coordinate (%d,%d) e': %d\n",r,c,mat[r][c]);
for (int i=0; i<r; i++){
for (int j=0; j<r; j++){
temp=maxc;
maxc=mat[r][c];
mat[r][c]=temp;
printf("%d",mat[i][j]);
}
}
}