Skocz do zawartości
kert

[c++]liczby Parzyste I Nieparzyste

Rekomendowane odpowiedzi

Witam

 

Mam problem z wyliczeniem średniej dla liczb parzystych i nieparzystych.

 

Opis programu:

Napisać program obiektowy działający na statycznej tablicy liczb całkowitych.

Tablica ma być zrealizowana w formie klasy a zadana czynność na tej tablicy - jako jedna z metod.

Znaleźć średnią liczb nieparzystych oraz średnią liczb parzystych. Określić, która jest większa.

 

Mój kod:

#include <iostream.h> #include <stdlib.h> #include <conio.h> class tablica { private:     int a[21];     float suma_p;     float suma_n;     float ilosc_p;     float ilosc_n; public:     tablica(int i);     void liczby();     float sredniap();     float srednianp(); }; tablica::tablica(int i) {     for (i=0; i<21; i++)     a[i] = random(100); } void tablica::liczby() {    int i;    int x;    for (i=0; i<21; i++)    {        x=a[i];        if ((x % 2)==0)        {           suma_p += x;           ilosc_p++;        }        else        {        suma_n += x;        ilosc_n++;        }    } } float tablica::sredniap() {    return float(suma_p)/float(ilosc_p); } float tablica::srednianp() {    return float(suma_n)/float(ilosc_n); } int main() {    clrscr();    randomize();    {       tablica ob(20);       cout << "Srednia parzystych: " << ob.sredniap() << endl;       cout << "Srednia nieparzystych: " << ob.srednianp() << endl;    } return 0; }

Program się kompiluje ale źle liczy, a ja nie wiem dlaczego :(

Może ktoś mi pomóc i przerobić go tak żeby działał?

 

Pozdrawiam

kert

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

:mur: :mur: :mur: :mur: :mur: :mur:

 

no to od poczatku ....

 

1) nigdzie nie uzyto funkcji liczby() - wiec ciekawe jakim cudem cokolwiek mogloby sie policzyc ...

 

2) zmienna ob nie zostala wogole zainicjalizowana ... moze jednak zapisac to jak w C++ Pan Bjorne S. uczyl:

tablica *ob= new tablica(20);

 

3) ciekawe do czego uzywana jest wogole zmienna int w konstruktorze - przeciez ona nic nie robi !!

 

4) ciekawe jak interpretujesz wyniki typu NaN (Not a Number) ....

 

zmodyfikowany main - zeby dzialalo

int main() {   clrscr();   randomize();   {      tablica *ob = new tablica(20);      ob->liczby();     cout << "Srednia parzystych: " << ob->sredniap() << endl;      cout << "Srednia nieparzystych: " << ob->srednianp() << endl;   } return 0; }

moze byc ewentualnie konieczne zainicjalizowanie zmiennych w konstuktorze klasy tablica - ale pewnie zostana automatycznie zainicjalizowane - kwestia kompilatora ...

 

:mur: :mur: :mur: :mur: :mur: :mur:

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki wam za pomoc :D

Poprawiłem i już wszystko jest OK. Wcześniej właśnie nie rozumiałem jak się odwoływać do funkcji w "main" - teraz już to zrozumiałem :)

 

Jeszcze raz dziękuje i pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...