1 / 3
Mar 2020

Cześć! Obżartuchy to moje pierwsze zadanie ze SPOJa i nie wiem dlaczego mój kod nie jest zaakceptowany. Bardzo proszę o pomoc, dopiero się uczę i chciałabym zrozumieć swoje błedy :slight_smile:
#include
#include

using namespace std;

int ile, a;
double suma=0, b;

int main()
{
cin>>ile;
for(int i=0;i<=ile;i++)
{
cin >>a >> b;

   double* tablica;
   tablica = new double[a-1];

   for (int i=0;i<a;i++)
   {
    cin>>tablica[i];
    tablica[i]=floor(86400/ tablica[i]);
    suma += tablica[i];
   }

   cout<< ceil(suma/b)<<endl;

delete []tablica;

}

return 0;

}

  • created

    Mar '20
  • last reply

    Mar '20
  • 2

    replies

  • 651

    views

  • 3

    users

  • 4

    likes

  • 1

    link

Jeśli zaczynasz, przeczytaj koniecznie! <--kliknij w to proszę!

pierwsza pętla wykonuje się o jeden raz za dużo.

Tablica nie jest w tym zadaniu konieczna.
Zadeklarowany jej rozmiar jest za mały o jeden.

Reszta “na oko” wygląda dobrze. Nie próbowałem uruchamiać.
EDIT. Chyba popatrzyłem nie tym okiem co trzeba, ale tak to jest bez testowania się wypowiadać.

Powinienem zignorować za “karę” nie przestrzegania reguł! :wink:

Zmienną suma należy przed każdym użyciem wyzerować. To, że jest ona globalna, [nie trzeba więc jej zerować] powoduje tylko początkowe, jednorazowe jej wyzerowanie. Najlepiej zrobić inicjalizację i deklarację w środku pętli i starać się nie używać niepotrzebnie zmiennych globalnych. {następny wpływ yutubowego wieszcza programowania?}

...
for (..) {
 double suma = 0;
...
}

I ten błąd powodował SIGABRT, ale oczywiście tablica jest tu zbędna.