School-Coding-Cpp/sfusi/somma di tanta roba.cpp

91 lines
2.5 KiB
C++

//Cristian Ronzoni 3Ain
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
#define DIM 5 // Dimensione della matrice
// Funzione per generare una matrice casuale
void riempiMatrice(int matrice[DIM][DIM]) {
srand(time(0)); // Inizializza il generatore di numeri casuali
for (int i = 0; i < DIM; ++i) {
for (int j = 0; j < DIM; ++j) {
matrice[i][j] = rand() % 10 + 1; // Numeri casuali tra 1 e 10
}
}
}
// Funzione per stampare la matrice
void stampaMatrice(int matrice[DIM][DIM]) {
for (int i = 0; i < DIM; ++i) {
for (int j = 0; j < DIM; ++j) {
cout << matrice[i][j] << " ";
}
cout << endl;
}
}
// Funzione per calcolare la somma di una riga
int sommaRiga(int matrice[DIM][DIM], int riga) {
int somma = 0;
for (int j = 0; j < DIM; ++j) {
somma += matrice[riga][j];
}
return somma;
}
// Funzione per calcolare la somma di una colonna
int sommaColonna(int matrice[DIM][DIM], int colonna) {
int somma = 0;
for (int i = 0; i < DIM; ++i) {
somma += matrice[i][colonna];
}
return somma;
}
// Funzione per calcolare la somma della diagonale principale
int sommaDiagonalePrincipale(int matrice[DIM][DIM]) {
int somma = 0;
for (int i = 0; i < DIM; ++i) {
somma += matrice[i][i];
}
return somma;
}
// Funzione per calcolare la somma della diagonale secondaria
int sommaDiagonaleSecondaria(int matrice[DIM][DIM]) {
int somma = 0;
for (int i = 0; i < DIM; ++i) {
somma += matrice[i][DIM - 1 - i];
}
return somma;
}
int main() {
int matrice[DIM][DIM];
// Genera la matrice casuale
riempiMatrice(matrice);
// Stampa la matrice
cout << "Matrice generata:" << endl;
stampaMatrice(matrice);
// Calcola e stampa le somme
int riga, colonna;
cout << "Inserisci il numero della riga (0 a " << DIM-1 << "): ";
cin >> riga;
cout << "Somma della riga " << riga << ": " << sommaRiga(matrice, riga) << endl;
cout << "Inserisci il numero della colonna (0 a " << DIM-1 << "): ";
cin >> colonna;
cout << "Somma della colonna " << colonna << ": " << sommaColonna(matrice, colonna) << endl;
cout << "Somma della diagonale principale: " << sommaDiagonalePrincipale(matrice) << endl;
cout << "Somma della diagonale secondaria: " << sommaDiagonaleSecondaria(matrice) << endl;
return 0;
}