Corso IN110 Algoritmi e Strutture Dati

Gli esercizi

Testi e soluzioni di alcuni esercizi

Riga di somma massima in una matrice

Leggere in input una matrice di interi (n righe ed m colonne). Stampare l'indice della riga di somma massima.

/*
**  matrice.c
**
**  Leggere in input una matrice di interi (n righe ed m colonne).
**  Stampare l'indice della riga di somma massima.
**
**  Marco Liverani (liverani@mat.uniroma3.it) - Ottobre 2001
*/

#include <stdlib.h>
#include <stdio.h>

#define MAX 100

/*
 *  Funzione per la lettura in input di una
 *  matrice di numeri interi.
 */

void leggi_matrice(int A[MAX][MAX], int *n, int *m) {
  int i, j;

  printf("Inserisci il numero di righe e di colonne: ");
  scanf("%d %d", n, m);
  printf("Inserisci gli elementi della matrice:\n");
  for (i=0; i<*n; i++) {
    for (j=0; j<*m; j++) {
      scanf("%d", &A[i][j]);
    }
  }
  return;
}

/*
 *  Funzione principale
 */

int main(void) {
  int A[MAX][MAX], n, m, i, j, max_val, max_ind, somma;

  leggi_matrice(A, &n, &m);
  max_val = -1;
  max_ind = -1;
  for (i=0; i<n; i++) {
    somma = 0;
    for (j=0; j<m; j++) {
      somma += A[i][j];
    }
    if (somma > max_val) {
      max_val = somma;
      max_ind = i;
    }
  }
  printf("La riga di somma massima (%d) e' quella di indice %d.\n", max_val, max_ind);
  return(0);
}

Università degli Studi Roma Tre - Dipartimento di Matematica e Fisica - Corso di laurea in Matematica - Corso di Informatica 1 (IN110)

Author: Marco Liverani - Last modified: Saturday July 13, 2019 - URI: http://www.mat.uniroma3.it/users/liverani/IN1/20011024.shtml