/* File: matmax.c */
/* Time-stamp: "2001-04-09 19:35:15 calvanes" */
/* Scopo: uso di array multidimensionali */

/* Calcola indici dell'elemento massimo di una matrice. */

#include <stdio.h>

#define R 3
#define C 2


void leggiMatrice(int m[R][C])
{
  int i, j;

  printf("Inserire gli elementi di una matrice di interi %dx%d\n", R, C);
  for (i = 0; i < R; i++)
    for (j = 0; j < C; j++)
      scanf("%d", &m[i][j]);
}


void stampaMatrice(int m[R][C])
{
  int i, j;

  for (i = 0; i < R; i++) {
    for (j = 0; j < C; j++)
      printf("%5d", m[i][j]);
    printf("\n");
  }
}


int massimoMatrice(int m[R][C], int *maxR, int *maxC)
  /* Restituisce l'elemento massimo della matrice m.
     Aggiorna maxR e maxC agli indici di riga e colonna dell'elemento massimo.
  */
{
  int i, j, max;

  *maxR = 0;
  *maxC = 0;
  max = m[0][0];
  for (i = 0; i < R; i++)
    for (j = 0; j < C; j++)
      if (m[i][j] > max) {
        max = m[i][j];
        *maxR = i;
        *maxC = j;
      }

  return max;
}


int main(void)
{
  int mat[R][C];
  int max, max_i, max_j;

  leggiMatrice(mat);
  max = massimoMatrice(mat, &max_i, &max_j);
  printf("massimo e` %d in posizione [%d,%d]\n", max, max_i, max_j);

  return 0;
}