Funkcja z klasy nie zwraca wartości
Ostatnio zmodyfikowano 2013-03-25 14:43
krissuu Temat założony przez niniejszego użytkownika |
Funkcja z klasy nie zwraca wartości » 2013-03-25 12:49:18 Siemka. Mam problem i nie mam pojęcia gdzie popełniam błąd. Chce aby moja funkcja zwracała wartość średnią elementów podanych do tablicy. Niestety tego nie robi... Mój kod: #include <iostream> #include <cstdlib> #include <conio.h> using namespace std; class tablica { int MAX_rozm; int rozmiar_tab; int * wsk_tab; double srednia; public: tablica( int rozmiar ); ~tablica(); void pokaz_tab(); void dodaj_elementy( int n ); double wartosc_srednia(); };
tablica::tablica( int rozmiar ) { MAX_rozm = rozmiar; wsk_tab = new int[ MAX_rozm ]; for( int i = 0; i < MAX_rozm; i++ ) wsk_tab[ i ] = 0; rozmiar_tab = 0; }
tablica::~tablica() { delete[] wsk_tab; wsk_tab = NULL; }
void tablica::dodaj_elementy( int n ) { for( int i = 0; i < n; i++ ) { if( rozmiar_tab < MAX_rozm ) { cout << "Podaj kolejny element T[" << rozmiar_tab << "] = "; cin >> wsk_tab[ rozmiar_tab++ ]; } else cout << "Przekroczono maksymalny rozmiar tablicy!\n"; } cout << "\n\n"; }
void tablica::pokaz_tab() { cout << "Zawartosc tablicy: " << endl; for( int i = 0; i < rozmiar_tab; i++ ) { if( i % 5 == 0 ) cout << endl; cout << "tab[" << i << "]= " << wsk_tab[ i ] << "\t"; } cout << "\n\nLiczba elementow w tablicy wynosi: " << rozmiar_tab << endl << endl; }
double tablica::wartosc_srednia() { int suma = 0; srednia = suma / rozmiar_tab; for( int i = 0; i < rozmiar_tab; i++ ) { suma = suma + wsk_tab[ i ]; } cout << "Suma wszystkich elementow tablicy wynosi: " << suma << "\n\n"; cout << "Srednia elementow tablicy wynosi: " << srednia << endl; return srednia; }
int _tmain( int argc, _TCHAR * argv[] ) { tablica Tab( 5 ); cout << "Tablica Tab:" << endl; Tab.dodaj_elementy( 5 ); Tab.pokaz_tab(); Tab.wartosc_srednia(); system( "PAUSE" ); return 0; }
|
|
unimator |
» 2013-03-25 14:32:40 int suma = 0; srednia = suma / rozmiar_tab;
|
|
krissuu Temat założony przez niniejszego użytkownika |
» 2013-03-25 14:43:56 Boże... Ok już widzę co narobiłem... Wystarczyło przenieść to w miejsce gdzie nasza suma już jest wyliczona... double tablica::wartosc_srednia() { double suma = 0; for( int i = 0; i < rozmiar_tab; i++ ) { suma = suma + wsk_tab[ i ]; } cout << "Suma wszystkich elementow tablicy wynosi: " << suma << "\n\n"; srednia = suma / rozmiar_tab; cout << "Srednia elementow tablicy wynosi: " << srednia << "\n\n"; return srednia; }
Dzięki za pomoc :) |
|
« 1 » |