• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Obżartuchy (spoj) - crash

Object Storage Arubacloud
0 głosów
350 wizyt
pytanie zadane 19 marca 2016 w C i C++ przez Kacper Zięba Nowicjusz (200 p.)

Witam. Przedstawiony poniżej program crashuje mi (nie wywala mi przy tym żadnych błędów przy kompilacji) gdy wpisuje czas zjedzenia 1 ciastka do CzasJedz.

Treść zadania: http://pl.spoj.com/problems/GLUTTON/

#include <iostream>

using namespace std;

int main()
{
    int ile, IleObzart, IleCiasPudel, *CzasJedz, *IleCiasDoba, s = 0;
    cin >> ile;
    for (int i = 0; i < ile; i++)
    {
        cin >> IleObzart >> IleCiasPudel;

        CzasJedz = new int [IleObzart];
        IleCiasDoba = new int [IleObzart];

        for (int q = 0; q < IleObzart; q++ )
        {
            cin >> CzasJedz[q];
            for (int k = 0; k < IleObzart; k++)
            {
                IleCiasDoba [k] = 86400/CzasJedz [k];
                s+= IleCiasDoba [k];
            }
            if (s%IleCiasPudel==0)
                cout << s/IleCiasPudel << endl;
            else cout << s/IleCiasPudel+1 << endl;
        }
    }
    return 0;
}

 

6 odpowiedzi

0 głosów
odpowiedź 19 marca 2016 przez Adrian1999 Nałogowiec (34,570 p.)
U mnie wszystko działa, nic nie crashuje
komentarz 20 marca 2016 przez Kacper Zięba Nowicjusz (200 p.)
edycja 20 marca 2016 przez Kacper Zięba

Mi nadal crashuje. To, jakie dane podaję do programu nie ma znaczenia. Gdy przesyłam kod do SPOJ'a to wyskakuje mi błąd wykonania (SIGFPE)

0 głosów
odpowiedź 20 marca 2016 przez jeremus Maniak (59,720 p.)
a po co Ci ta pętla z ineksem k ? ?, tutaj masz błąd

przecież lecisz po ludkach w petli q
0 głosów
odpowiedź 20 marca 2016 przez Blacha Mądrala (5,960 p.)
Wszystkie zmienne które przez które dzielisz zamień na flout.

edit: Dobra nieważne, nie zauważyłem że występują tylko liczby całkowite.
0 głosów
odpowiedź 20 marca 2016 przez Kacper Zięba Nowicjusz (200 p.)

Dzięki za pomoc. Finalny, działający kod (punkcik na SPOJ!)

#include <iostream>

using namespace std;

int main()
{
    int ile, IleObzart, IleCiasPudel, *CzasJedz, *IleCiasDoba, s = 0;
    cin >> ile;
    for (int i = 0; i < ile; i++)
    {
        if (s > 0) s=0;
        cin >> IleObzart >> IleCiasPudel;

        CzasJedz = new int [IleObzart];
        IleCiasDoba = new int [IleObzart];

        for (int q = 0; q < IleObzart; q++ )
        {
            cin >> CzasJedz[q];
            IleCiasDoba [q] = 86400/CzasJedz [q];
            s+= IleCiasDoba [q];
        }
        if (s%IleCiasPudel==0)
        cout << s/IleCiasPudel << endl;
        else cout << s/IleCiasPudel+1 << endl;
    }
    return 0;
}

 

–1 głos
odpowiedź 20 marca 2016 przez MetGang Nałogowiec (34,360 p.)
Pierwsze, co się rzuca w oczy, to zastosowanie new[] bez delete[]... Zero zwalnianej pamięci. Po drugie, w pętli k dzielisz przez komórki CzasJedz[k], które nie zostały jeszcze zapełnione. Potem masz ifa z modulo, czyli dzieleniem - istnieje ryzyko dzielenia przez zero.

Podobne pytania

0 głosów
1 odpowiedź 157 wizyt
0 głosów
1 odpowiedź 405 wizyt
0 głosów
0 odpowiedzi 700 wizyt
pytanie zadane 6 kwietnia 2018 w C i C++ przez adi17122 Nowicjusz (140 p.)

92,621 zapytań

141,477 odpowiedzi

319,817 komentarzy

62,005 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...