Allora..ricapitoliamo... quelli scritti da te, li ho provati su vari pc e si bloccano...
questo qui invece, ha un solo difetto:
#include <stdio.h>
#define N 4
/*Prototipo funzioni*/
void min_max_2D(int A[N][N], int n,int *max,int *min,int *riga_min,int *col_min,int *riga_max,int *col_max);
main()
{
/*Inizializzazione*/
int A[N][N]={{1,2,3,4}, {13,14,15,16}, {5,6,7,8}, {9,10,11,12} };
int n,min,max,riga_min,col_min,riga_max,col_max,i,j;
printf("Calcolo dell'elemento massimo di un array\n");
for (i=0;i<4;i++)
for(j=0;j<4;j++)
printf("A[%d][%d]=%d \n",i,j,A[j]);
/*chiamata alla funzione per il calcolo del massimo elemento*/
min_max_2D(A,n,&max,&min,&riga_min,&col_min,&riga_max,&col_max);
/*Output*/
printf("Il massimo tra gli elementi e' %d in pos A[%d][%d]\n",max,riga_max,col_max);
printf("Il minimo degli elementi e' %d in pos A[%d][%d]\n",min,riga_min,col_min);
system("Pause");
}
/*calcolo del massimo tramite la function*/
void min_max_2D(int A[N][N], int n,int *max,int *min,int *riga_min,int *col_min,int *riga_max,int *col_max)
{
int i=0;
int j=0;
*max=A[j];
*min=A[j];
for (i=0; i<N; i=i+1)
{
for(j=0;j<N;j++)
{
if(A[j]>*max)
*max=A[j];
*riga_max=i;
*col_max=j; -----> con queste assegnazioni, mi restituisce sempre l'ultima posione, e
non quella dell'elemento max(in questo caso). credo sia perchè si trova all'interno dei
cicli for... come faccio a far restituire la posizione corretta?
if(A[j]<*min)
*min=A[j];
*riga_min=i;
*col_min=j;
}
}
}