#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void CreaMat (int A[50][50], int n, int m);
void PrintMat(int A[50][50], int n, int m);
void PrintCol(int A[50][50], int n, int m, int maxCol);
int FindMinMax(int A[50][50],int n, int m);
int main(){
int n,m,maxCol;
int A[50][50];
printf("Inserire righe\n");
scanf("%d",&n);
printf("Inserire colonne\n");
scanf("%d",&m);
CreaMat(A,n,m);
PrintMat(A,n,m);
maxCol=FindMinMax(A,n,m);
printf("\nLa colonna con la differenza minore fra le maggiori e' la N.%d:\n",maxCol);
PrintCol(A,n,m,maxCol);
return 0;
}
void CreaMat (int A[50][50], int n, int m){
int i,j;
srand(time(NULL));
for(i=0;i<n;i++){
for(j=0;j<m;j++){
A[i][j]=rand()%10;
}
}
}
void PrintMat(int A[50][50], int n, int m){
int i,j;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
printf("%d \t",A[i][j]);
}
printf("\n");
}
}
void PrintCol(int A[50][50], int n, int m, int maxCol){
int i,j;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
if(j==maxCol){
printf("%d \t",A[i][j]);
}
}
}
}
int FindMinMax(int A[50][50],int n, int m){
int i,j,minGlob,minGlobInx,maxCol=0;
for(j=0;j<m;j++){
for(i=0;i<n-1;i++){
if(abs(A[i][j]-A[i+1][j])>maxCol){
maxCol=abs(A[i][j]-A[i+1][j]);
}
}
if(j==0){
minGlob=maxCol;
minGlobInx=j;
maxCol = 0;
}else{
if(minGlob>maxCol){
minGlob=maxCol;
minGlobInx=j;
maxCol = 0;
}
}
}
return minGlobInx;
}