#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 maxc);
main()
{
//DICHIARAZIONE VARIABILI
FILE *fp;
int mat[n][n];
int r;
int c;
int maxc;
//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");
printf("\nIL MASSIMO DELLA COLONNA E':\n");
maxCol(mat,r,c,maxc,pos);
}
}
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 maxc){
for (int i=0, j=0; i<c; i++){
printf("%d",mat[i][j]);
}
} // in questo modo però mi visualizza solo la prima colonna, e non è su richiesta dell'utente.
La mia difficoltà sta nel visualizzare una colonna e calcolarne il massimo. Ciò che voglio fare io è dire al programma di prendermi ad esempio la seconda colonna, il programma la prende, me la visualizza e mi calcola il massimo, dopodichè il programma mi chiede di scambiare questo massimo con un'altra posizione. So fare tutto, ma non so come visualizzare 1 sola colonna su richiesta dell'utente. Spero di aver reso l'idea.
P.S: Ho pensato tipo di dichiararmi un vettore ,dove, inserendo le coordinate della colonna, me la mette all'interno di questo nuovo vettore.