1 / 9
Mar 2017

Dlaczego ten program jest zly? Siedze juz pol dnia i moge rozwiazac problemu.

include

using namespace std;

int x,test,a,n,w,b=0;

long m;

int main()
{
cout << "Podaj ile bedzie testow: ";
cin >> test;

for(int h=0; h<test; h++)
{

cout << "Podaj liczbe uczestnikow"<< endl;
cin>>n;
cout << "Podaj liczbe ciastek w 1 opakowaniu" << endl;
cin>>m;

for (int i=0;i<n;i++)
{
    cout<<"Podaj czas jedzenia 1 ciastka w sekundach przez zawodnika"<<endl;
    cin>>a;
    x=86400/a;
    b=(int)(b+x);
}
cout<<"Zawodnicy zjedza "<<b<<" ciastek"<<endl;

w=b%m;

if (w!=0)
{
    cout<<"Trzeba kupic "<<(int)b/m+1<<" opakowan"<<endl;
}
else cout<<"Trzeba kupic "<<b/m<<" opakowan"<<endl;
}

return 0;

}

  • created

    Mar '17
  • last reply

    Mar '17
  • 8

    replies

  • 629

    views

  • 4

    users

  • 3

    links

i jeszcze długo będziesz siedział - bo najpierw trzeba przeczytać o zasadach - a tam jest, że na wyjściu programu ma być dokładnie to, czego żąda autor zadani i nic więcej
(czyli żadnych ozdobników)

Mimo usunięcia ozdobników dalej kod jest błędny. Czy jest różnica w tym, że program prosi o podanie danych, daje wynik i prosi o kolejne dane dla kolejnego przypadku?

  1. NIE zaokrąglasz danych przy dzieleniu (w kilku miejscach)

nie wiem dokładnie czy to czasem nie powoduje dodatkowego błędu ponieważ long używa się nie tylko jako long int, ale też jako long double

PS 1.

oraz

starczypo prostu:
b=b+x;
b/m+1;

PS 2. kod najlepiej linkuj do ideone.com Tam kod jest lepiej pokazany oraz można wykonać program na różnych testach.
PS 3. poczytaj sobie:
http://213.192.104.217/phpBB3-spoj-pl-backup/viewtopic.php?f=1&t=1214&p=18657&hilit=regulamin&sid=42b6992ce572be6ceec4ea66f26bd686#p1865711

Twój program dla przykładowego testu daje
83
zamiast
8
2

Wyniki dla osobnych testów musisz oddzielać białym znakiem, najlepiej znakiem nowej linii. No i poprawić algorytm, bo drugi test jest źle liczony.

W końcu poszło wszytko ok. Dzięki wielkie za pomoc. To było moje pierwsze zadanie. Uzmysłowiło mi, że teorię trzeba łączyć z robieniem zadań.