» Poradna » Programy

C++ - Aritmetický průměr

 |   |  Microsoft Windows 7 Chrome 45.0.2454.85

Dobrý den, mám dotaz ohledně C++, přesnějí výpočet aritmetického průměru z 3 celých čísel.Např. 10,3,1 - arit.průměr výjde 5, ale v mém programu se zobrazí 4, protože se to zaoukrouhlí dolů. Potřeboval bych to nějak zafixovat, poradíte mi?int a,b,c; cout<<"Zadej:\n"; cin>>a>>b>>c; cout<<"Aritmeticky prumer je:\n"; cout<<(a+b+c)/3<<"\n";

Odpovědi na otázku

 |   |  Microsoft Windows XP Firefox 40.0

(Bez ověření, nemám tu C++)int a,b,c; cout<<"Zadej:\n"; cin>>a>>b>>c; cout<<"Aritmeticky prumer je:\n"; cout<<(float)((a+b+c)/3)<<"\n";

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 45.0.2454.85

Bohužel nefunguje ale děkuji za reakci

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 40.0

Aha, aha, aha, zkus (namísto tvého posledního řádku)cout<<(a+b+c)/3<<"\n";zadat:std::cout << std::fixed << std::setprecision(2) << (float)((a+b+c)/3);

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 45.0.2454.85

To se nevyřešilo ale děkuji

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 40.0

#include <cstdlib>#include <iostream>#include <iomanip>#include <limits>using namespace std;int main(int argc, char *argv[]){ int a,b,c; cout<<"Zadej:\n"; cin>>a>>b>>c; cout<<"Aritmeticky prumer je:\n"; std::cout << std::fixed << std::setprecision(4) << (float)((a+b+c)/3);}

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows XP Firefox 40.0

Teda poslední řádek takhle std::cout << std::fixed << std::setprecision(4) << (float)(a+b+c)/3;

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 45.0.2454.85

cout<<(a+b+c)/3.0f<<"\n";

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Firefox 40.0

cout << round((a + b + c) / 3.0) << endl;

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Chrome 45.0.2454.85

int a,b,c;cout<<"Zadej:\n";cin>>a>>b>>c;cout<<"Aritmeticky prumer je:\n";cout<<(a+b+c)/3.0<<"\n";

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 40.0

Tak to nepočítej s intama (=celá čísla bez toho za desetinou čárnou). A mimochodem průměr nemá být 5, ale 4,667, protože 10+3+1 = 14, ne 15. A jelikož je tam int, tak se ti na to za čárkou vykašle a vypíše se jen 4. Není to o zaokrouhlování, ale o úplné ignoraci desetinných míst.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Firefox 40.0

Ono problém je v tom, že v C++ je celočíselné delenie implementované ako tzv. "floor division", čiže výsledok "prejde" funkciou floor, preto to robí neplechu

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8.1 Firefox 40.0

Tohle je řešení float a, b, c; cout << "Zadej:\n"; cin >> a >> b >> c; cout << "Aritmeticky prumer je:\n"; cout << int(ceil((a + b + c) / 3)) << "\n";

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8.1 Firefox 40.0

musíš počítat s floatem, pak udělat celou část(ceil) a pak převést na int aby na výstupu bylo celé číslo bez desetinné čárky

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: C++, Průměr




Určitě si přečtěte

Šmírovačka kamerami Googlu: Koukněte se, co nového zachytily na Street View

Šmírovačka kamerami Googlu: Koukněte se, co nového zachytily na Street View

Google stále fotí celý svět do své služby Street View. A novodobou zábavou je hledat v mapách Googlu vtipné záběry. Podívejte se na výběr nejlepších!

redakce | 44

Alan Turing: Genius, který matematicky stvořil počítač

Alan Turing: Genius, který matematicky stvořil počítač

Řešením matematického problému se dostal k modelu teoretického stroje, který nese jeho jméno a je základem logiky univerzálních počítačů.

Pavel Tronner | 56

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

** Portál občana už funguje, vyřídíte na něm první požadavky ** Funkce se budou postupně rozšiřovat ** Web je docela moderní a přehledný

David Polesný | 65

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 28


Aktuální číslo časopisu Computer

Velký test 18 bezdrátových sluchátek

Vše o přechodu na DVB-T2

Procesory AMD opět porážejí Intel

7 NVMe M.2 SSD v přímém souboji