wskazanie która z 5 liczb jest bliższa ich średniej arytmetycznej przy użyciu wskaźników
Ostatnio zmodyfikowano 2014-12-19 13:07
joinzbozin Temat założony przez niniejszego użytkownika |
wskazanie która z 5 liczb jest bliższa ich średniej arytmetycznej przy użyciu wskaźników » 2014-12-15 23:38:23 #include<iostream> using namespace std; void podawanie( double * wsk, double & srednia ) { double suma = 0; for( int i = 0; i < 5; i++ ) { cout << "podaj liczbe"; cin >>* wsk; suma +=* wsk; wsk++; } srednia = suma / 5; cout << "srednia=" << srednia << endl; } double liczenie( double * wsk, double srednia ) { double wynik = 0; double roznica = 0; for( int i = 0; i < 5; i++ ) { cout <<* wsk; if( * wsk > srednia ) roznica =( * wsk ) - srednia; else roznica = srednia -( * wsk ); if( roznica >= wynik ) wynik =( * wsk ); wsk++; } return wynik; } double srednia( double * tab ) { } int main() { double tab[ 10 ]; double * wsk = tab; double srednia; podawanie( wsk, srednia ); cout << liczenie( wsk, srednia ); }
Proszę o odpowiedż dlacze program nie wskazuje poprawnej liczby? |
|
darko202 |
» 2014-12-16 11:28:24 problem tkwi w linii if( roznica >= wynik ) wynik =( * wsk ); // bieżąca wartość wskaźnika 1,2,3,4 lub 5 .... return wynik;
|
|
Tomek_z_W11 |
» 2014-12-16 21:44:32 Moim zdanie błąd jest w tym miejscu: |
|
Monika90 |
» 2014-12-17 11:56:11 Moim zdanie błąd jest w tym miejscu:
wsk++; //powinno być ( * wsk ) ++;
|
Akurat to było dobrze. Warunek w tej instrukcji if( roznica >= wynik ) jest błędny, początkowa wartość zmiennej roznica też nie jest dobra. Zastanów się nad prawidłowym algorytmem. Warto też żebyś zapoznał się z funkcją abs z <cmath>. |
|
Tomek_z_W11 |
» 2014-12-19 08:59:44 Jakim cudem wsk++ jest dobrze? Czy to nie jest wskaźnik przypadkiem? Przecież wtedy będzie wskazywać na następną komórkę w pamięci, która przechowuje zupełnie inną wartość. |
|
Monika90 |
» 2014-12-19 12:59:10 Nie będzie wskazywał na następną komórkę pamięci, tylko na następny element tablicy, i o to właśnie chodzi, przegląda się kolejne elementy tablicy by znaleźć ten najbliższy średniej. |
|
Tomek_z_W11 |
» 2014-12-19 13:07:00 No tak. Faktycznie. Mój błąd. |
|
« 1 » |