School-Coding-Cpp/sfusi/NumCasMedia.cpp

59 lines
1.6 KiB
C++

//Patriche Robert Cosmin 3Ain
/* Dato un vettore di 15 numeri interi casuali, scrivere un programma che calcola la media aritmetica,
poi la sostituisce a tutti gli elementi del vettore maggiori di essa.*/
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// Funzione per calcolare la media aritmetica di un array
double calcolaMedia(int arr[], int size) {
double somma = 0;
for (int i = 0; i < size; i++) {
somma += arr[i];
}
return somma / size;
}
// Funzione per sostituire gli elementi maggiori della media
void sostituisciConMedia(int arr[], int size, double media) {
for (int i = 0; i < size; i++) {
if (arr[i] > media) {
arr[i] = media; // Conversione a intero
}
}
}
// Funzione principale
int main() {
const int DIM = 15;
int numeri[DIM];
// Inizializza il generatore di numeri casuali
srand((time(0)));
// Popola l'array con numeri casuali tra 1 e 100
cout << "Array originale: ";
for (int i = 0; i < DIM; i++) {
numeri[i] = rand() % 100 + 1;
cout << numeri[i] << " ";
}
cout << endl;
// Calcola la media
double media = calcolaMedia(numeri, DIM);
cout << "Media aritmetica: " << media << endl;
// Sostituisce gli elementi maggiori della media
sostituisciConMedia(numeri, DIM, media);
// Stampa l'array modificato
cout << "Array modificato: ";
for (int i = 0; i < DIM; i++) {
cout << numeri[i] << " ";
}
cout << endl;
return 0;
}