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

Zadanie domowe z odcinka 17. Funkcje matematyczna. Krążownik.

VPS Starter Arubacloud
+1 głos
962 wizyt
pytanie zadane 25 czerwca 2015 w C i C++ przez WojciechJot Gaduła (3,410 p.)

Witam mam problem z zadaniem dot. obliczenia "Ile krążowników jestem w stanie kupić posiadając daną ilośc metalu, kryształu oraz deuteru?".

W chwilii wciśnięcia przycisku F9 *start programu* wyrzuca mnie na zakładkę stl_algobase.h i informuje o błędzie: "__comp cannot be used as a function".

Nie wiem w czym jest problem, program wydaje się być prawidłowy no chyba, że poknociłem coś z instrukcja "min". Wstawiam tutaj kod programu i proszę o pomoc lub nakierowanie mnie na właściwy tor myślenia. Dziekuję, pozdrawiam serdecznie.

 

#include <iostream>
#include <cmath>

using namespace std;
int metal, krysztal, deuter, krazownik, ile_metal, ile_krycha, ile_deu;
int main()
{
    cout << "Ile masz metalu?: " << endl;
    cin>>metal;
    cout << "Ile masz krysztalu?: " << endl;
    cin>>krysztal;
    cout << "Ile masz deuteru?: " << endl;
    cin>>deuter;

    ile_metal = trunc(metal/20000);
    ile_krycha = trunc(krysztal/7000);
    ile_deu = trunc(deuter/2000);
    krazownik = min(ile_metal, ile_krycha, ile_deu);
    cout<<"Mozesz kupic za to:" <<krazownik<<"krazownikow."<<endl;

    return 0;

}

 

2 odpowiedzi

+1 głos
odpowiedź 25 czerwca 2015 przez krecik1334 Maniak (58,390 p.)
wybrane 25 czerwca 2015 przez WojciechJot
 
Najlepsza
#include <iostream>
#include <cmath>

using namespace std;
int metal, krysztal, deuter, krazownik, ile_metal, ile_krycha, ile_deu;
int main()
{
    cout << "Ile masz metalu?: " << endl;
    cin>>metal;
    cout << "Ile masz krysztalu?: " << endl;
    cin>>krysztal;
    cout << "Ile masz deuteru?: " << endl;
    cin>>deuter;

    ile_metal = trunc(metal/20000);
    ile_krycha = trunc(krysztal/7000);
    ile_deu = trunc(deuter/2000);
    krazownik = min(ile_metal, min(ile_krycha, ile_deu));
    cout<<"Mozesz kupic za to:" <<krazownik<<"krazownikow."<<endl;

    return 0;

}

Poprawny kod. Funkcja min() przyjmuje 2 lub 3 argumenty. Znajduje ona mniejszą z dwóch wartości. Trzeci argument to predykat porównujący.

komentarz 25 czerwca 2015 przez WojciechJot Gaduła (3,410 p.)
Ach, jednak działa dzięki bardzo. Nie wiedziałem, że tą funkcje się w taki sposób stosuje dla 3 argumentów.
komentarz 25 czerwca 2015 przez krecik1334 Maniak (58,390 p.)
Dodam, że podobnie stosuje się również funkcję NWD() z algorytmu Euklidesa dla n liczb gdzie n > 2. Tylko tutaj już działamy w pętli, żeby nie pisać 1000 wywołań.
0 głosów
odpowiedź 25 czerwca 2015 przez WojciechJot Gaduła (3,410 p.)

Przysiadłem i jeszcze go troche przerobiłem aby w pełni pasował do odcinka pana Mirosława. Może komuś się przyda łapcie.

A temat do zamknięcia. ;)

 

#include <iostream>
#include <cmath>

using namespace std;
int metal, krysztal, deuter, krazownik, ile_metal, ile_krycha, ile_deu;
int main()
{
    cout << "Ile masz metalu?: " << endl;
    cin>>metal;
    cout << "Ile masz krysztalu?: " << endl;
    cin>>krysztal;
    cout << "Ile masz deuteru?: " << endl;
    cin>>deuter;

    if(metal<0 || krysztal<0 || deuter<0)
        cout<<"nieprawidlowe dane!!!"
    else
    {
        ile_metal = trunc(metal/20000);
        ile_krycha = trunc(krysztal/7000);
        ile_deu = trunc(deuter/2000);
        krazownik = min(ile_metal, min(ile_krycha, ile_deu));

        cout<<"Mozesz kupic za to:" <<krazownik<<"krazownikow."<<endl;
    }




    return 0;

}

 

Podobne pytania

0 głosów
2 odpowiedzi 897 wizyt
pytanie zadane 17 października 2015 w C i C++ przez parimple Początkujący (260 p.)
0 głosów
4 odpowiedzi 333 wizyt
0 głosów
3 odpowiedzi 446 wizyt
pytanie zadane 2 września 2015 w C i C++ przez Irek Placek Nowicjusz (120 p.)

92,453 zapytań

141,262 odpowiedzi

319,088 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!

...