Vidurkio nuo 1 iki n skaičiavimas C++

Sveiki, norėjau pasiteirauti, kaip rasti lyginių skaičių vidurkį nuo 1 iki n(imtinai) vidurkį? (C++)

0

peržiūros 138

atsakymai 6

aktyvumas 2 mėn

Pamėgink su for ciklu. Kai įvesi konkrečią n reikšmę ciklu praeik pro visas reikšmes nuo 1 iki n, o ciklo viduje tikrink, ar skaičius lyginis, jei taip, tai jį sumuok. Lyginių skaičių kiekį galima rasti tiesiog paėmus [tex]\dfrac{n}{2}[/tex] sveikąją dalį. Tuomet, kai turėsi lyginių skaičių kiekį ir jų sumą, paskaičiuok vidurkį.

Paskutinį kartą atnaujinta 2017-10-07

0

Arba galima dar paprasčiau. Skliaustais [] žymėsiu skliaustuose esančio skaičiaus sveikąją dalį.
Kai skaičiuojame lyginių skaičių nuo 1 iki n vidurkį, tai jis lygus:
[tex]1+\left [\dfrac{n}{2}\right ][/tex]

Paskutinį kartą atnaujinta 2017-10-07

0

Aš parašiau tokią programą, (suskaičiuoti sveikojo tipo lyginių skaičių nuo 1 iki n vidurkį (1<=n<=1000), išvesti sveikojo tipo skaičių (vidurkį)) tačiau man rodo, kad programą neteisinga. Gal žinot kaip ją pataisyti?

#include <iostream>
using namespace std;
int main()
{
  int sum=0;
  int n;
  cin>>n;
  int sk, vid;
  sk=n/2;
    for(int i=2; i<=n; i=i+2)
    {
      sum=sum+i;
      vid=sum/sk;
    }
      cout<<vid<<endl;
  return 0;
}

0

Neskaičiuok vidurkio cikle, tai neturi prasmės. Vidurkis skaičiuojamas ciklui pasibaigus.
#include <iostream>
using namespace std;
int main()
{
  int sum=0;
  int n;
  cin>>n;
  int sk, vid;
  sk=n/2;
    for(int i=2; i<=n; i+=2) sum+=i;
      vid=sum/sk;
      cout<<vid<<endl;
  return 0;
}

Taip pat pridėjau šiek tiek nereikšmingų pakeitimų kode, kurie supaprastina užrašymą, pavyzdžiui žinok, jog x=x+y tas pats kas x+=y arba x=x-y tas pats kas x-=y ir t.t.

0

Dabar meta 'Runtime error'

0

Man viskas veikia, nežinau kame pas tave problema.

0

Norėdami rašyti žinutes privalote prisijungti!