• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zaokrąglanie liczb C++

Object Storage Arubacloud
+1 głos
4,418 wizyt
pytanie zadane 10 czerwca 2017 w C i C++ przez Adwormix Nowicjusz (230 p.)

Witam, chciałem rozpocząć swoją przygodę z programowaniem w C++ tworząc prosty program obliczeniowy. Program ma za zadanie obliczyć ilość kursów jaką musi przebyć ciężarówka, aby przewieźć cały ładunek (na podstawie wpisanej ładowności ciężarówki oraz wagi ładunku do przewiezienia) Problem tkwi w tym, że ciężarówka nie może zrobić na przykład 2,5 kursu. Np: gdy ładowność będzie wynosiła 6 ton, a waga ładunku 30 ton to wszystko będzie w porządku i wyjdzie nam prawidłowy wynik. Schody zaczynają się wtedy gdy waga ładunku wynosi np. 34 tony i aby wyszedł prawidłowy wynik musi być on zaokrąglony w górę, ponieważ ciężarówka musi wykonać jeszcze jeden niepełny kurs. Tak więc, moje pytanie, jak sprawić aby wynik, który jest pod zmienną "kursy" został zaokrąglony w górę. Z góry dziękuje za pomoc.




#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

int ladownosc, waga, kursy, koszt, kosztcaly;

int main()
{
    cout << "Ile ladunku musisz przewiezc (wpisz w tonach:)";
    cin >> ladownosc;

    cout << "Jaka jest ladownosc ciezarowki (wpisz w tonach):";
    cin >> waga;

    kursy = (ladownosc/waga);
    cout <<"Ciezarowka musi zrobic kursow:"<<ceil(kursy)<<endl;



    cout <<"Podaj koszt jednego przejazdu ciezarowki (zl):";
    cin >> koszt;

    kosztcaly = kursy*koszt;
    cout <<"Koszt przejazdow ciezarowki wyniesie (zl):"<< kosztcaly<< " zl";



    return 0;
}

 

1 odpowiedź

+2 głosów
odpowiedź 10 czerwca 2017 przez Knayder Nałogowiec (37,640 p.)
wybrane 12 czerwca 2017 przez Adwormix
 
Najlepsza

http://www.cplusplus.com/reference/cmath/ceil/
Funkcja ceil()
Z tego co widzę, to u ciebie jest problem taki, że próbujesz trzymać ułamek w int (Int trzyma tylko liczby całkowite).
Zrób to tak:
 

kursy = (int)ceil((double)ladownosc / waga);

 

1
komentarz 10 czerwca 2017 przez Knayder Nałogowiec (37,640 p.)
Przykład twojego błędu:
int a = 10/4;
//a == 2 w tym momencie. 10/4 = 2.5, ale jako że to jest int, to wszystko po kropce jest usuwane.
komentarz 10 czerwca 2017 przez Adwormix Nowicjusz (230 p.)
Dziękuję za pomoc, zamykam temat :)
komentarz 10 czerwca 2017 przez Knayder Nałogowiec (37,640 p.)
Oznacz najlepszą odpowiedź.

Podobne pytania

0 głosów
2 odpowiedzi 31,652 wizyt
pytanie zadane 17 lipca 2016 w C i C++ przez BanditPlayGame Użytkownik (680 p.)
0 głosów
1 odpowiedź 363 wizyt
pytanie zadane 5 grudnia 2022 w C i C++ przez piotr_domanski Bywalec (2,080 p.)
0 głosów
0 odpowiedzi 611 wizyt
pytanie zadane 16 lutego 2021 w C i C++ przez Ashiro Nowicjusz (210 p.)

92,551 zapytań

141,399 odpowiedzi

319,529 komentarzy

61,937 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...