Corso di Informatica Generale - Primo modulo IN1

Testi e soluzioni di esercizi

 

Classifica del campionato

/*
**  classifica.c
**
**  Leggere in input una matrice di nxm numeri interi, ognuno dei
**  quali pua' valere soltanto 0, 1 o 2. Ogni riga della matrice
**  rappresenta i punti acquisiti dalle squadre di calcio nelle
**  partite disputate nelle diverse giornate del campionato: 2
**  punti per le partite vinte, 1 punto per quelle pareggiate e
**  0 punti per le sconfitte. I risultati della giornata k-esima
**  sono contenuti nelle righe della colonna di indice k.
**  Per ogni giornata del campionato si stampi l'indice (il numero
**  di riga corrispondente) della squadra capolista.
**
**  Marco Liverani (liverani@mat.uniroma3.it) - Aprile 2001
*/

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

#define MAX 100

/*
 *  Legge in input una matrice di interi di n righe ed
 *  m colonne.
 */

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

  for (i=0; i<n; i++)
    for (j=0; j<m; j++)
      scanf("%d", &mat[i][j]);
  return;
}

/*
 *  Funzione principale.
 */

int main(void) {
  int i, j, n, m, massimo, X[MAX][MAX], P[MAX];

  printf("Inserisci il numero di righe (squadre) ed il numero di colonne (giornate): ", &n, &m);
  scanf("%d %d", &n, &m);
  leggi_matrice(X, n, m);

  for (i=0; i<n; i++)
    P[i] = 0;

  for (j=0; j<m; j++) {
    massimo = 0;
    for (i=0; i<n; i++) {
      P[i] = P[i] + X[i][j];
      if (P[i]>P[massimo])
        massimo = i;
    }
    printf("Capolista dopo la giornata %d: squadra n.%d con %d punti.\n", j, massimo, P[massimo]);
  }
  return(1);
}

Per informazioni e commenti: liverani@mat.uniroma3.it - Torna alla Home page - Ultima modifica: 2 Aprile 2001