eMatematikas Prisijunk Forumas Egzaminų užduotys ONLINE testai

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++)

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į.

pakeista prieš 6 m

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]

pakeista prieš 6 m

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;
}

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.

Dabar meta 'Runtime error'

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

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »