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.
Bardzo dziękuje, zadziałało. Wydawało mi się, że jeśli jest napisane jaki przedział liczbowy jest dla danej zmiennej to siłą rzeczy trzeba zrobić sprawdzanie poprawności.
Jeśli chodzi o to że mógłbym to zdanie zrobić bez tablic to, tak wiem, Tzn. później wpadłem na taki pomysł, ale pozostałem przy tablicy, bo chciałem trochę poćwiczyć.
Co do returna, tak. zmieniłem, ponieważ gdy za pierwszym razem wkleiłem kod z exitem to wyświetlił się komunikat o braku kompilacji. Zapomniałem o tym wspomnieć.
Jeszcze raz dziękuje za pomoc.
Hej, mam problem z tym zadaniem.
Wiem, że kod móglby być łatwiej napisany, prosze o pomoc
https://pastebin.com/uxS9qFZH14
Pzdr
Popatrzyłem na Twój kod i się przeraziłem. 83 linie kodu, gdy można to zrobić w mniej niż 30. Nie zrozum mnie źle,nie krytykuję go. Tworzenie klas ma tutaj pewnie jakieś walory edukacyjne, ale bardzo wydłuża kod i obniża, moim zdaniem, czytelność programu. Sorry, nie byłem w stanie zmusić się, by go przeczytać. Ale możliwe, że znajdziesz innych chętnych.