School-Coding-Cpp/sfusi/Copia di trova la riga o la...

84 lines
2.4 KiB
C++

// Cristian Ronzoni 3Ain
/* Funzione che in una matrice
trova la riga o la colonna con somma più alta */
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#define NUM 7
using namespace std;
// Dichiarazione delle funzioni
void riempi(int arr[NUM][NUM]);
void stampa(int arr[NUM][NUM]);
void sommaRigaColonna(int arr[NUM][NUM]);
int main(void) {
int bobby[NUM][NUM];
srand(time(0)); // Inizializza il generatore di numeri casuali
riempi(bobby); // Riempie la matrice con numeri casuali
stampa(bobby); // Stampa la matrice
sommaRigaColonna(bobby); // Trova la riga e la colonna con la somma più alta
return 0;
}
// Funzione per riempire la matrice con numeri casuali
void riempi(int arr[NUM][NUM]) {
for (size_t i = 0; i < NUM; ++i) {
for (size_t j = 0; j < NUM; ++j) {
arr[i][j] = rand() % 50; // Numeri casuali tra 0 e 49
}
}
}
// Funzione per stampare la matrice
void stampa(int arr[NUM][NUM]) {
cout << "Matrice generata:\n";
for (size_t i = 0; i < NUM; ++i) {
for (size_t j = 0; j < NUM; ++j) {
cout << setw(3) << arr[i][j] << " ";
}
cout << endl;
}
cout << endl;
}
// Funzione per trovare la riga e la colonna con somma più alta
void sommaRigaColonna(int arr[NUM][NUM]) {
int maxSommaRiga = 0, maxSommaColonna = 0;
int rigaMax = -1, colonnaMax = -1;
// Calcolo della somma delle righe
for (size_t i = 0; i < NUM; ++i) {
int sommaRiga = 0;
for (size_t j = 0; j < NUM; ++j) {
sommaRiga += arr[i][j];
}
if (sommaRiga > maxSommaRiga) {
maxSommaRiga = sommaRiga;
rigaMax = i;
}
}
// Calcolo della somma delle colonne
for (size_t j = 0; j < NUM; ++j) {
int sommaColonna = 0;
for (size_t i = 0; i < NUM; ++i) {
sommaColonna += arr[i][j];
}
if (sommaColonna > maxSommaColonna) {
maxSommaColonna = sommaColonna;
colonnaMax = j;
}
}
// Stampa dei risultati
cout << "La riga con somma più alta è la riga " << rigaMax + 1
<< " con somma: " << maxSommaRiga << endl;
cout << "La colonna con somma più alta è la colonna " << colonnaMax + 1
<< " con somma: " << maxSommaColonna << endl;
}