#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;	
}