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

7. Se citesc elementele unui tablou v unidimensional cu n (n<=100) componente, numere întregi

din cel mult 4 cifre fiecare. Să se numere câte elemente sunt egale cu media aritmetica a

vecinilor săi​

URGEENT!!VA ROG MULT

Răspunsuri la întrebare

Răspuns de OiLoveYouO
1

#include <iostream>

using namespace std;

int v[100], i, n, k, media;

int main ()

{ cin >> n; /*numarul n de elemente*/

for (i = 1; i <= n; i++) cin >> v[i]; /*se citesc elementele tabloului*/

k = 0; /*se initializeaza nr de numere care respecta cerinta cu 0*/

for (i = 2; i <= n-1; i++) {

media = (v[i-1]+v[i+1])/2; /*se calculeaza partea intreaga din media numerelor*/

if ((v[i] == media) && (v[i-1]+v[i+1])%2 == 0 ) k++ ; /*se verifica daca v[i] este media aritmetica a vecinilor si daca suma numerelor este divizibila cu 2, adica daca partea intreaga a mediei numerelor este egala cu media lor*/

}

cout << k; /*se afiseaza k=numarul de elemente ce respecta cerinta*/

return 0;

}

Precizez ca doar ce este boldat reprezinta codul; restul sunt comentarii (textul de tipul /* ..... */ ) si pot fi excluse


bbeea49810: mersii mult
Răspuns de NikTel
1

Răspuns:

using namespace std;

#include <iostream>

#include <stdlib.h>

#include <math.h>

int main() //programul principal

{

int v[1000],n,i,ma,totalNumere;

cout<<"Numar de numere:";

   cin>>n;

   totalNumere=0;

   for(i=1;i<=n;i++) {

    cout<<"Numarul :"<<i<<" ";

    cin>>v[i];

}

   for(i=2;i<=n-1;i++) {

 if (v[i]==(v[i-1]+v[i+1])/2)

   totalNumere=totalNumere+1;

}  

   cout<<"rezultat : "<<totalNumere;

}


OiLoveYouO: daca ai secventa 4; 1 2 3 5, programul tau va afisa 2
OiLoveYouO: asta pentru ca v[i] este declarat ca intreg, (v[i+1]+v[i-1])/2 este luat ca intreg, si cand programul ajunge la elem 3, media vecinilor este 7/2=3,5 => 3
NikTel: corect , (v[i+1]+v[i-1])/2 trebuie inlocuit cu ((v[i]==(v[i-1]+v[i+1])/2) && ((v[i-1]+v[i+1])%2==0))
Alte întrebări interesante