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

question-closed Działanie funkcji

VPS Starter Arubacloud
0 głosów
134 wizyt
pytanie zadane 24 lutego 2017 w C i C++ przez seba Dyskutant (8,900 p.)
zamknięte 25 lutego 2017 przez seba

Czemu to:

float ile_paczek_trzeba_kupic(int doba,int czas_jedzenia)
{
    float ile;
    ile=doba/(czas_jedzenia);
    return ile;
}

ile_kupic+=ile_paczek_trzeba_kupic(doba,czas_jedzenia);
cout<<ceil(ile_kupic/liczba_ciastek_w_pudelku)<<endl;


Nie działa tak samo jak to: 

float ile_paczek_trzeba_kupic(int doba,int czas_jedzenia,int liczba_ciastek_w_pudelku)
{
    float ile;
    ile=doba/(czas_jedzenia*liczba_ciastek_w_pudelku);
    return ile;
}


ile_kupic+=ile_paczek_trzeba_kupic(doba,czas_jedzenia,liczba_ciastek_w_pudelku);
cout<<ceil(ile_kupic)<<endl;

 

komentarz zamknięcia: Problem rozwiązany

2 odpowiedzi

0 głosów
odpowiedź 25 lutego 2017 przez Piotr Batko Stary wyjadacz (13,190 p.)
wybrane 25 lutego 2017 przez seba
 
Najlepsza

W odpowiedzi zakładam, że zmienna ile_kupic jest typu float. W kodzie poniżej założyłem przykładowe dane dla których Twoje fragmenty kodu dadzą różne rozwiązania. W listingu poniżej kopiuję Twój kod po linijce i pod każdą pokazuję obliczenia jakie wykonał komputer.

// Załóżmy takie dane
int doba = 24;
int czas_jedzenia = 5;
int liczba_ciastek_w_paczce = 7;

// Pierwszy kod
ile_kupic=doba/(czas_jedzenia);
ile_kupic = 24 / 5 = 4

ceil(ile_kupic/liczba_ciastek_w_paczce);
ceil(4 / 7) = 1

// Drugi kod
ile_kupic=doba/(czas_jedzenia*liczba_ciastek_w_pudelku);
ile_kupic = 24 / (5 * 7) = 24 / 35 = 0
 
ceil(ile_kupic)
ceil(0) = 0

Jeżeli dziwi Cię to, że czasami wynikiem działania 1 / 2 jest 0, a czasem 0.5, to poszukaj w google haseł:

  • dzielenie całkowite
  • rzutowanie float na int
komentarz 25 lutego 2017 przez seba Dyskutant (8,900 p.)
Dziękuję, na taką odpowiedź czekałem.
0 głosów
odpowiedź 24 lutego 2017 przez Szahid Pasjonat (20,930 p.)
Pierwszy przykład nie ma prawa działaś ponieważ podajesz do funkcji 3 argumenty a w prototypie są zadeklarowane 2.
komentarz 24 lutego 2017 przez seba Dyskutant (8,900 p.)
tzn. Masz racje ale nie oto mi chodziło(ten kawałek źle przekopiowałem, już poprawiony). Chodzi mi oto że funkcje wyglądają tak samo a inaczej liczą.
komentarz 24 lutego 2017 przez Szahid Pasjonat (20,930 p.)
Zmienna czas jedzenia jest czasem jedzenia jednego ciastka czy jednej paczki ? Po nazwie funkcji wnioskuje że jest czasem jedzenia jednej paczki. Więc skoro chcesz liczyć ile paczek należy kupić to nie wiem po co mnożysz czas jedzenia przez liczbę ciastek w pudełku. W tym miejscu jest błąd logiczny

Podobne pytania

+1 głos
1 odpowiedź 443 wizyt
pytanie zadane 19 października 2016 w JavaScript przez niezalogowany
+1 głos
2 odpowiedzi 184 wizyt
+1 głos
1 odpowiedź 572 wizyt
pytanie zadane 24 stycznia 2021 w C i C++ przez hicodyn Początkujący (420 p.)

92,454 zapytań

141,262 odpowiedzi

319,090 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...