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

Obżartuchy pomoc

Object Storage Arubacloud
–1 głos
507 wizyt
pytanie zadane 13 lipca 2018 w SPOJ przez Bloom55 Użytkownik (660 p.)
zmienione kategorie 13 lipca 2018 przez Bloom55

https://pl.spoj.com/problems/GLUTTON/

Mam problem z tym zadaniem. Nie wiem czemu mój program jest zły

#include <iostream>

using namespace std;

int main()
{
    int il_t, dobas=24*3600;
    cin>>il_t;

    for(int z=0; z<il_t; z++)
    {
        int ilosc_obzartuchow, il_ciastek_w_pudelku;
        int potrzebneciastka=0, potrzebnepudelka;

        cin>>ilosc_obzartuchow>>il_ciastek_w_pudelku;

        for(int i=0; i<ilosc_obzartuchow; i++)
        {
            int czas[ilosc_obzartuchow];
            cin>>czas[i];
            potrzebneciastka+=dobas/czas[i];
        }


        potrzebnepudelka=(potrzebneciastka/10)%10;

        if(potrzebneciastka<=potrzebnepudelka*10) cout<<potrzebnepudelka<<endl;
        else cout<<potrzebnepudelka+1<<endl;


    }

    return 0;
}

 

komentarz 13 lipca 2018 przez Mariusz08 Maniak (62,300 p.)
Zła kategoria
komentarz 13 lipca 2018 przez Bloom55 Użytkownik (660 p.)
Zmienione, dzięki :P Prosiłbym również o pomoc :/
komentarz 13 lipca 2018 przez Mariusz08 Maniak (62,300 p.)
Po pierwsze dodaj opis swojego problemu. Co nie działa, jakie są błędy. Poza tym nie programuję w C++ więc nie mogę pomóc.

1 odpowiedź

+2 głosów
odpowiedź 13 lipca 2018 przez niezalogowany
wybrane 13 lipca 2018 przez Bloom55
 
Najlepsza

Zamiast 10 powinieneś używać zmiennej il_ciastek_w_pudelku. Rozdziel też operacje dzielenia i modulo. W instrukcji warunkowej powinien być warunek potrzebnepudelka % il_ciastek_w_pudelku <= 0.

PS. W zadaniu nie musisz korzystać z tablicy.

komentarz 17 października 2018 przez marta.kappav Nowicjusz (180 p.)

moglabym prosic tez o ocenienie tego kodu????

#include <iostream>

using namespace std;

int ile, pudelka;

int suma=0;

int main()
{
  cin>>ile;

  for(int i=1; i<=ile; i++)
  {
    int LOZ, LCP, suma=0;

      cin>>LOZ>>LCP;

        int *tablica;
        tablica = new int [LOZ-1];

      for(int j=0; j<LOZ; j++)
      {
          cin>>tablica[j];
          suma += 86400/tablica[j];
      }

        if(suma%LCP==0) pudelka=suma/LCP;
        else pudelka=suma/LCP+1;

        cout<<pudelka<<endl;

         delete[] tablica;
  }

    return 0;
}

Dziekuje!!!

 

1
komentarz 17 października 2018 przez niezalogowany

Jest jeden mały błąd:

tablica = new int [LOZ-1]; // powinno być new int [LOZ] żeby w kolejnej pętli nie wyjść poza zakres tablicy

Z uwag:

  1. Masz dwie zdublowane zmienne suma
  2. Nie używaj zmiennych globalnych
  3. Formatuj odpowiednio kod. Widzę, że starasz się ładnie ustawiać klamry, ale nie rozumiem czemu prawie w każdej linii wszystko jest takie nierówne.
  4. Możesz tworzyć dynamicznie tablicę w jednej linii:
    int *tablica = new int [LOZ];
    
  5. Nazywaj zmienne zgodnie z ich przeznaczeniem np zmienne - pudelka ok, suma ok, tablica no może być, ale LOZ, LCP to nie wiadomo o co chodzi. W przyszłości staraj się nazywać wszystko po angielsku.
  6. Nie używaj przestrzeni nazw std. 

PS. Zadawaj osobne pytania. Tutaj w przeciwieństwie do forum SPOJ nie robimy tematów zbiorczych dla każdego zadania. Po prostu robi się w tym wszystkim bałagan, a Twój problem nie jest aż tak widoczny dla innych użytkowników. Pamiętaj: 

  • jedno pytanie / temat - 1 (no tak mniej więcej :D) problem danego użytkownika. 
  • komentarz do pytania - np. próba uzyskania bardziej szczegółowego opisu problemu, prośba o sformatowanie kodu, dodanie linku do zadania, małe sugestie których nie jesteśmy pewni
  • odpowiedz - dajesz ją wtedy gdy jesteś pewna, że to co piszesz jest słuszne i komuś pomoże
  • komentarz do odpowiedzi - dyskusja nad daną odpowiedzią - wątpliwości, problemy, podziękowania etc.

Pozdrawiam ;)

komentarz 17 października 2018 przez marta.kappav Nowicjusz (180 p.)
Bardzo, bardzo dziekuje za pomoc!!!

Postaram sie dostosowac do regul. :)

Jedno pytanie tylko, przepraszam. Dlaczego mam nie uzywac przestrzeni nazw std? To jest ustawienie domyslne w CodeBlocks nawet w programie Hello World, dlatego sie pytam.

Pozdrawiam serdecznie i jeszcze raz dziekuje!! :))
1
komentarz 17 października 2018 przez niezalogowany

Poczytaj o tym w internecie. To ciężko wytłumaczyć początkującym, a trzeba się trochę namęczyć żeby przekazać wszystko dobrze i zrozumiale. W skrócie im większy projekt, im więcej dodatkowych różnych bibliotek tym więcej to problemów tworzy (kolizja nazw) i w ostateczności wcale nie musi skracać pisania. Jedyne dopuszczalne w profesjonalnym programowaniu jest wczytanie przestrzeni nazw w jakimś lokalnym bloku np funkcji (nigdzie indziej nie będzie przeszkadzać, a skróci i polepszy zrozumienie kodu), lub zmiana nazwy przestrzeni gdy jest zbyt zagnieżdżona np boost::numeric::ublas.

komentarz 19 października 2018 przez marta.kappav Nowicjusz (180 p.)
Dzieki! Jeszcze jedno pytanie, jesli nie sprawie klopotu. Odpowiedzialas uzytkownikowi Bloom55 ze nie trzeba uzywac tablic do tego zadania i ja sie tak zastanawiam jak wypisac czasy zjadania ciastka przez obzartuchow nie znajac ich liczby? Jak mozna to zrobic bez tablicy?
1
komentarz 19 października 2018 przez niezalogowany

Każdy czas zjadania ciastek jest od razu wykorzystywany do liczenia ich ilości, a później nie jest do niczego potrzebny. Wystarczy go wczytywać do zwykłej zmiennej:

int czasNaCiastko = 0;
for(int j=0; j<LOZ; j++)
{
    cin >> czasNaCiastko;
    suma += 86400/czasNaCiastko;
}

Podobne pytania

+1 głos
1 odpowiedź 183 wizyt
pytanie zadane 18 czerwca 2018 w SPOJ przez Fernokip Nowicjusz (180 p.)
0 głosów
1 odpowiedź 222 wizyt
pytanie zadane 5 grudnia 2017 w SPOJ przez Kamil Miętkiewicz Użytkownik (630 p.)
0 głosów
1 odpowiedź 280 wizyt
pytanie zadane 4 listopada 2017 w SPOJ przez PanJaqb Początkujący (360 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...