Wyznaczanie wartosci najblizszej sredniej 3 liczb
Ostatnio zmodyfikowano 2014-04-06 21:45
Merkury_Code Temat założony przez niniejszego użytkownika |
Wyznaczanie wartosci najblizszej sredniej 3 liczb » 2014-04-05 23:18:36 Zle wyznacza liczbe. Wie ktos co jest nie tak ? #include <iostream>
using namespace std; float a, b, c, m, srednia, najblizsza;
int main() { cout << "Podaj 3 liczb: "; cin >> a >> b >> c; srednia =( a + b + c ) / 3; cout << "Srednia to: " << srednia << endl << endl; m =( srednia * 100000 - a ); najblizsza = a; if(( srednia * 100000 - b ) < m ) { m =( srednia * 100000 - b ); najblizsza = b; } if(( srednia * 100000 - c ) < m ) { m =( srednia * 100000 - c ); najblizsza = c; } cout << "Najbardziej zblizona liczba do sredniej " << srednia << endl << "to :" << najblizsza; return 0; }
|
|
Nitr0Skay |
» 2014-04-06 01:00:30 if(( srednia * 100000 - b ) < m ) { m =( srednia * 100000 - b ); najblizsza = b; } if(( srednia * 100000 - c ) < m ) { m =( srednia * 100000 - c ); najblizsza = c; }
W tych warunkach powinna być według Pana operacja Porównania, czy Przypisania ?? Po za tym, nie wiem co Pan rozumie pod pojęciem "Najbliższa Wartość". Dla mnie Taka wartość musi mieć jak najmniejszą różnicę, najlepiej równą zero, wtedy Wartość nie tylko będzie najbliższa, ale i równa. Zależy też co chce Pan osiągnąć. Możliwym też, że to ja źle rozumuję. Jeżeli tak, to prosiłbym mnie wyprowadzić z błędu :) |
|
Merkury_Code Temat założony przez niniejszego użytkownika |
» 2014-04-06 10:30:12 te warunki sprawdzaja, jezeli srednia - 2 liczba jest mniejsza od srednia -1 licza. To 2 liczba jest najwieksza a za m wchodzi ten srednia * 100000 - b. |
|
Merkury_Code Temat założony przez niniejszego użytkownika |
» 2014-04-06 12:55:13 pomoze ktos ? |
|
pekfos |
» 2014-04-06 13:31:08 a jest najbliższe średniej, gdy |średnia - a| jest najmniejsze. Co robi twój kod? Szuka liczby najbliższej do średniej.. pomnożonej razy 100 tysięcy. Błąd niemal na siłę wciśnięty.. |
|
Merkury_Code Temat założony przez niniejszego użytkownika |
» 2014-04-06 21:45:02 zrobilem to celowo, bo ten zapis (srednia-a) nie bedzie dzialal przy wartosciach ujemnych. Juz rozkminilem, ze trzeb tutaj dodac modul. Tak to ma wygladac : #include <iostream> #include <math.h>
using namespace std; float x, y, z, a, b, c, d, e, m, srednia, najblizsza;
int main() { cout << "Podaj 5 liczb: "; cin >> a >> b >> c >> d >> e; srednia =( a + b + c + d + e ) / 5; cout << "Srednia to: " << srednia << endl << endl; x = fabs( srednia - a ); najblizsza = a; if( fabs( srednia - b ) < x ) { x = fabs( srednia - b ); najblizsza = b; } if( fabs( srednia - c ) < x ) { x = fabs( srednia - c ); najblizsza = c; } if( fabs( srednia - d ) < x ) { x = fabs( srednia - d ); najblizsza = d; } if( fabs( srednia - e ) < x ) { x = fabs( srednia - e ); najblizsza = e; } cout << "Najbardziej zblizona liczba do sredniej " << srednia << endl << "to :" << najblizsza; return 0; }
|
|
« 1 » |