[C++] Zaokrąglanie w cmath

Programowanie w języku C i językach pochodnych, jak C++, C#
cichy_lamus19
Posty: 1
Rejestracja: 22 kwie 2019, 22:49

[C++] Zaokrąglanie w cmath

Post autor: cichy_lamus19 » 22 kwie 2019, 23:01

Dobry wieczór,
mam problem z następującym kodem, gdyż nie wiem, dlaczego wywala mi 2 z kawałkiem w przykładzie na spoju. Liczyłam kilka razy samodzielnie i mi wychodzi równo 2 opakowania ciastek, ale właśnie ów program zapisuje cyfry po przecinku, ale nie mam pojęcia, co zrobiłam źle. Przypuszczam, że może to być wina źle przypisanych typów zmiennym?

Tutaj zadanko na spoju: https://pl.spoj.com/problems/GLUTTON/

Kod: Zaznacz cały

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int n, x;
    float y,v[10000],ciastka[10000],opak,suma=0;

    cin>>n; //testy

    for(int i=1; i<=n; i++)
    {
        cin>>x>>y;
        //ilosc obzartuchow do 10.000
        //liczba ciastek w opakowaniu d0 1.000.000

        for(int i=1; i<=x; i++)
        {
            cin>>v[i];
            ciastka[i]=86400/v[i];
            suma+=ciastka[i];
        }
        opak=suma/y;
        cout<<ceil(opak)<<endl;
    }
    return 0;
}


Program bez funkcji ceil():
2
2 10
3600
1800
7.2
3 356
123
32999
10101
2.20677


Niezmiernie proszę o wyjaśnienie mojego błędu :)