• 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.

+1 głos
2,148 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 1,272 wizyt
pytanie zadane 17 października 2015 w C i C++ przez parimple Początkujący (260 p.)
0 głosów
4 odpowiedzi 814 wizyt
0 głosów
3 odpowiedzi 734 wizyt
pytanie zadane 2 września 2015 w C i C++ przez Irek Placek Nowicjusz (120 p.)

93,790 zapytań

142,754 odpowiedzi

323,429 komentarzy

63,394 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...