Zaokrąglanie liczb

0

Witam. Wyobraźmy sobie, że kupujemy pączki na impreze, dla każdego gościa po 1 pączku, gości będzie 72. Pączki są sprzedawane w opakowaniach po 10 sztuk. Program ma za zadanie obliczyc ilosc pudelek z paczkami, ktore trzeba kupic. W zwiazku z tym, musi on zaokraglic liczbe do 8 pudelek (dzieki temu kodowi zwraca wynik 7 pudelek). Co trzeba dodac/zmienic, zeby program prawidlowo to obliczal? (Dopiero ucze sie programowania w c++)

Kod wygląda tak:

#include <iostream>
#include <math.h>
using namespace std;

int ilosc_paczkow=72;
int ilosc_pudelek=10;
int pudelek;

int main(){

pudelek=ceil(ilosc_paczkow)/ilosc_pudelek;
cout<<"Potrzeba "<<pudelek<< " pudelek z paczkami";

return 0;
}
4

ceil(ilosc_paczkow) nic nie zrobi, bo ilosc_paczkow jest całkowite.
ilosc_pudelek jest myląco nazwane, powinno być coś w stylu liczba_paczkow_w_pudelku.

To czego oczekujesz możesz osiągnąć na dwa spsoby:

pudelek = (ilosc_paczkow + ilosc_pudelek - 1) / ilosc_pudelek;
pudelek = ceil(1.0 * ilosc_paczkow / ilosc_pudelek);

W pierwszym dodajesz ilosc_pudelek - 1 do dzielonej liczby, co zaowocuje zwiększeniem wyniku dzielenia o jeden, chyba że ilosc_paczkow równo dzieli się przez ilosc_pudelek - wtedy wynik pozostanie bez zmian. W drugim liczysz wynik jako wartość zmiennoprzecinkową i ją zaokrąglasz w górę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1