Sveiki, norėjau pasiteirauti, kaip rasti lyginių skaičių vidurkį nuo 1 iki n(imtinai) vidurkį? (C++)
Tomas PRO +4543
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
Tomas PRO +4543
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
k1997 +32
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; }
Tomas PRO +4543
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.
k1997 +32
Dabar meta 'Runtime error'
Tomas PRO +4543
Man viskas veikia, nežinau kame pas tave problema.