Informatică, întrebare adresată de businessman, 9 ani în urmă

Se da un vector cu n elemente numere reale.Sa se inlocuiasca fiecare element al vectorului cu media aritmetica a celorlate n-1 elemente.


Rayzen: Da-ne si un exemplu, este?

Răspunsuri la întrebare

Răspuns de Razzvy
10
#include <iostream>
using namespace std;

int main()
{
   int n;
   double v[100], s = 0;
  
   cin>>n;
   for(int i = 0; i < n; i++)
   {
      cin>>v[i];
      s += v[i];
   }
  for(int i = 0; i < n; i++)
  {
      v[i] = (s - v[i]) / (n - 1);
  }

  //afisarea
  for(int i = 0; i < n; i++)
     cout<<v[i]<<' ';
 
}

Rayzen: daca am avea de exemplu 1 2 4 7, se va schimba 1 cu 4,3333 si vom avea vectorul 4,33333 2 4 7, acum, in locul lui 2, nu ar trebui sa vina media aritmetica a lui 4,3333, 4 si 7 ? Fiindca zice, sa se inlocuiasca fiecare element al vectorului, deci, cand ajunge la i = 2, vectorul va deveni 4,3333333, 2, 4, 7 nu va mai fi 1, 2 ,4 ,7.
Rayzen: Nu asa ar fi logic dupa enunt?
Rayzen: S-ar putea ca a ta sa fie interpretarea corecta, dar mie mi se pare logica si asta :))
Razzvy: Inteleg ce vrei sa spui, este interpretabil, dar la prima vedere, asa mi s-a parut simplu.
businessman: Rezolvarea este corecta. Asta a fost ceea ce se cerea.
Rayzen: Bun! :D
Răspuns de Rayzen
10
#include <iostream>

using namespace std;

int main()
{
    int n,i;
    float k=1,s=0;
    cin>>n;
    float V[n];
    for(i=1;i<=n;i++) 
    {
        cin>>V[i];         //citirea
    }

    for(i=1;i<=n;i++)
    {
        k=0;
        s=0;
        for(int j=i+1;j<=n;j++)
        {                                           //afisarea
            s = s + V[j];
            k++;

            if(j==n)   { V[i] = s/k;  }
        }

       if(i==n)    {  }

       else { cout<<V[i]<<" "; }
    }
}
Anexe:

Rayzen: mda, am gresit, am facut altceva.
Rayzen: Modific.
stassahul: Mda... atit teai staruit si degeaba xD
Rayzen: Niciodata, exercitiul nu e degeaba :))
Rayzen: exersarea*
stassahul: La inceput tot mam gindit ca trebuie sa faci cum tu ai facut, deci faceam si eu gresit daca scriam :)
Rayzen: :))
Rayzen: Incerc sa il fac din nou, dar diferit fata de razvyy.
Rayzen: Dar e ciudat, zice. Sa se inlocuiasca fiecare element al vectorului cu media aritmetica a celorlate n-1 elemente. Deci, daca am avea de exemplu 1 2 4 7, se va schimba 1 cu 4,3333 si vom avea vectorul 4,33333 2 4 7, acum, in locul lui 2, nu ar trebui sa vina media aritmetica a lui 4,3333, 4 si 7??
businessman: Fix la asta m am gandit si eu. Dar nu inteleg cum de foloseste tot valoarea de dinainte,desi a fost inlocuita.
Alte întrebări interesante