Informatică, întrebare adresată de dobre50, 8 ani în urmă

Se da un vector cu n elemente. Sa se inlocuiasca fiecare element din sir cu media aritmetica a celorlalte.

Răspunsuri la întrebare

Răspuns de andrei750238
2

► PROGRAM C++ :

#include <iostream>

using namespace std;

int main(){

//Citire vector

int n;

float v[100];

cin >> n;

for(int i=0; i<n;i++) cin >> v[i];

//Determinare suma

int suma = 0;

for(int i=0; i<n;i++) suma += v[i];

//Inlocuire fiecare numar cu m.a. a celorlalte numere

for(int i=0; i<n;i++) v[i] = float(suma-v[i])/(n-1);

//Afisare rezultat

for(int i=0; i<n;i++) cout << v[i];

}

► Explicatie :

Citim numerele, calculam suma. Pentru fiecare element v[i] media aritmetica a celorlalte numere este suma - v[i] supra n-1.

In mod matematic fancy

\forall i \in \overline{0,n-1}, v_i \leftarrow \frac{\sum_{i=0}^{n-1}-v_i}{n-1}, unde\\\\v \in R^n, n \in N, n \geq 2

► Nota :

Se putea realiza programul folosind doar doua instructiuni for, una in care avem citirea si calculul sumei iar alta in care avem calcularea noilor valori si afisarea acestora. Aceasta idee ramane "tema" pentru cititor.

Alte întrebări interesante