- Bo zaburza naturalną kolejność czytania.
- Dlaczego?
- Topposting.
- Co jest najbardziej irytujące na grupach?
Może mi ktoś powiedzieć co jest nie tak z tym kodem? W kompilatorze działa prawidłowo dla przykładowych testów.
#include
using namespace std;
int n,m,test,pudelka,suma;
int main()
{
cin>>test;
for(int i=0; i<test; i++)
{
cin>>n>>m;
for(int i=0; i<n; i++)
{
int *t = new int [i];
cin>>t[i];
suma += 86400/t[i];
pudelka = suma/m;
delete [] t;
}
if(suma%m > 1/m )
{
pudelka++;
}
cout<< pudelka<<endl;
}
return 0;
}
Czy ktoś może wie czemu mi w drugim przykładzie wychodzi 3?
Suma pudełek wynosi 2.00452, więc wydaje mi się ze zaokrąglenie do 3 jest poprawne.
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int ile_testow;
cin >> ile_testow;
for (int i = 0; i < ile_testow; i++)
{
float ile_obzartuchow = 0, ile_ciastek_na_pudelko = 0, czas = 0, ilosc_pudelek = 0;
cin >> ile_obzartuchow >> ile_ciastek_na_pudelko;
for (int i = 0; i < ile_obzartuchow; i++)
{
cin >> czas;
ilosc_pudelek += ((86400 / czas) / ile_ciastek_na_pudelko);
cout << ilosc_pudelek << endl;
}
cout << ceil(ilosc_pudelek) << endl;
ilosc_pudelek = 0;
}
return 0;
}
może po prostu przelicz ten drugi przykład na kartce papieru (nie używając kalkulatora)
oczywiście przedtem jeszcze raz przeczytaj uważnie treść zadania (a w przypadku wątpliwości warto przeczytać więcej niż raz)
gdybyś przeczytał cały wątek, to wiedziałbyś, że do tej pory nikt nie zgłaszał wątpliwości co do wyników przykładu - więc problem jest o twojej stronie
Heaya banana wszystkim (żarcik taki). Zmądrzałem od wczoraj i doszedłem do kilku nowych rzeczy. Pomogło rozpisanie wszystkiego na kartce. Teraz moim problemem jest to że się że program dodaje wyniki z podpętli.
#include
using namespace std;
int main()
{
int test, n,m,x;
int suma=0;
int doba=86400;
int tablica[10000];
int czas;
int wynik;
cin>>test;
for(int i=0; i<test; i++)
{
cin>>n>>m;
for(int z=0; z<n; z++)
{
cin>>czas;
tablica[z]=czas;
}
for(int z=0; z<n; z++)
{
suma+=doba/tablica[z];
}
if(suma%m==0){x=suma/m;}
else{x=suma/m+1;}
cout<<x<<endl;
}
}
Hej
Zrobiłem testy i wyszły, sam też nie widzę błędu w tym zadaniu. Jednak kompilator mówi mi, że jest błąd. Mógłbym wiedzieć o co chodzi? Z góry dzięki!
#include
#includeusing namespace std;
int n,a[1000000],b; // zestaw testowy
int zaproszeni;
int pudelko, czas[1000000];
float c,lpud;int main()
{
cout << "Podaj liczbê zestawów testowych: " << endl;
cin >> n;
for (int i = 0; i < n; i++)
{cout << "Podaj liczbê zaproszonych ob¿artuchów: " << endl; cin >> zaproszeni; cout << "Podaj liczbê ciastek w pude³ku: " << endl; cin >> pudelko; for (int i=1; i<=zaproszeni; i++) { cout << "Podaj czas jedzenia " << i << "ego ob¿artucha" << endl; cin >> czas[i-1]; } for (int i=1; i<=zaproszeni; i++) { cout << "Czas jedzenia " << i << "ego ob¿artucha to: " << czas[i-1] << endl; } for (int i=1; i<=zaproszeni; i++) { a[i-1]=86400/czas[i-1]; cout << "Liczba ciastek " << i << "ego ob¿artucha to: " << a[i-1] << endl; b=a[i-1]/pudelko; c=c+a[i-1]; }
lpud = (c/pudelko);
cout << c << endl;
if ((int)lpud - lpud == 0)
cout << lpud << endl;
if ((int)lpud - lpud != 0)
cout << ceil(lpud) << endl;
c=0;
}return 0;
}
Jak mogły Ci wyjść testy jeśli twierdzisz, że kod nie przeszedł kompilacji?
Twój kod jest bardzo zawikłany i niepotrzebnie skomplikowany. W tym zadaniu można sobie poradzić bez użycia tablic a Ty wprowadzasz dwie tablice. Po co rozpoczynasz licznik w pętli od i=1 a później dajesz indeks tablicy i-1? Jeśli licznik będzie startował od 0 to indeks tablicy i licznik będą zgodne (to nie jest błąd ale niepotrzebne zamieszanie). Lepiej nie używaj polskich znaków bo widzisz jak to wychodzi. Zresztą po co to wypisujesz? Zwróć uwagę w treści zadania co masz prawo (i obowiązek) wypisać. Wypisanie czegoś więcej jest błędem.
Dzięki za odpowiedź!
Zdaję sobie sprawę, że kod mógłby być prostszy - jest to mój praktycznie samodzielny pierwszy program (biorę udział w kursie C++ na stronie pana Mirosława Zelenta) i to jest takie pierwsze “poważniejsze” zadanie domowe. A kod skopiowałem prosto z Codebloxa i chodzi o to, że tam wprowadzałem przykładowe dane, przeliczałem i działało
Witam,
Ktoś pomoże? Na ideone wychodzi tak jak jest w przykładzie. a niestety sędzia wywala “Błędna odpowiedź” https://ideone.com/PhEbBL9
Dodam tylko ze zmienialem zmienna, która odpowiada za czas jedzenia jednego ciastka zeby nie byla powyzej liczby sekun całego dnia ale nic.
Funkcję sum wywołuj tylko jeden raz i usuń parametr c, który jest zbędny. W treści zadania nie ma nic o sprawdzaniu poprawności wejścia. Usuń wszystkie takie konstrukcje:
if ((1 <= quantityMonsters) && (quantityCookiesInBox <= 10000) && (1 <= quantityCookiesInBox) && (quantityCookiesInBox <= 1000000000))
Tyle powinno wystarczyć do AC. Możesz też zrobić to zadanie bez tablic i typów zmiennoprzecinkowych
BTW. W C++ raczej nie powinno się używać funkcji exit. Możesz zakończyć działanie funkcji main używając return.