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

[b]Dobry wieczór,[/b]
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/
[code]#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;
}
[/code]
[b]Program bez funkcji ceil():[/b]
2
2 10
3600
1800
7.2
3 356
123
32999
10101
2.20677
Niezmiernie proszę o wyjaśnienie mojego błędu :)