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

Kurs C++ odc. 17: Funkcje matematyczne w C++ zadanie domowe

Object Storage Arubacloud
0 głosów
907 wizyt
pytanie zadane 17 października 2015 w C i C++ przez parimple Początkujący (260 p.)
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int zasob[2], cena[2], reszta[2], x;

int main()
{
    cena[0] = 20000;
    cena[1] = 7000;
    cena[2] = 2000;
    
    for (int i=0; i<3; i++) {
        cout<<cena[i]<<endl;
    }
    for (int i=0; i<3; i++) {
        cout<<cena[i]<<endl;
    }
    
    cout<<"ile masz matalu?"<<endl;
    cin>>zasob[0];
    cout<<"ile masz kryształu?"<<endl;
    cin>>zasob[1];
    cout<<"ile masz deuteru?"<<endl;
    cin>>zasob[2];
    for (int i=0; i<3; i++) {
        cout<<zasob[i]<<endl;
        
    }
    cout<<endl;
    for (int i=0; i<3; i++) {
        cout<<cena[i]<<endl;
    }
    
    for (int i=0; i<3; i++) {
        reszta[i] = zasob[i]/cena[i];
        cout<<"reszta: "<<reszta[i]<<" zasob "<<zasob[i]<<"/"<<"cena "<<cena[i]<<endl;
    }
    for (int i=0; i<3; i++) {
        cout<<reszta[i]<<endl;
        
    }
    x = reszta[0];
    for (int i=0; i<3; i++) {
        if (x>reszta[i]) x=reszta[i];
        
    }
    
    cout<<endl<<x<<endl;
    
    
    
    
    
    
    return 0;
    
}

20000

7000

2000

20000

7000

2000

ile masz matalu?

50000

ile masz kryształu?

40000

ile masz deuteru?

20000

50000

40000

20000

 

20000

7000

2000

reszta: 2 zasob 50000/cena 20000

reszta: 5 zasob 40000/cena 7000

reszta: 10000 zasob 20000/cena 2 // <--------------------- TUTAJ!!

2

5

10000

 

2

Program ended with exit code: 0

 

W powyższym kodzie zmienna cena[2] gubi swoją wartość i nie wiem czemu.

 

 

2 odpowiedzi

+1 głos
odpowiedź 17 października 2015 przez furas Maniak (53,800 p.)
wybrane 17 października 2015 przez parimple
 
Najlepsza
Nie uruchomię kodu ale widzę na początku błąd.

Tworzysz tablicę dwuelementową `cena[2]` a potem wpisujesz do niej trzy elementy.

Tak się składa, że za tą tablicą deklarujesz dwuelementową tablicę `reszta[2]` tak więc odwołanie się do trzeciego elementu tablicy `cena` (która ma tylko dwa miejsca) skutkuje pobraniem danych z pierwszego pola w tablicy reszta.

Język C/C++ pozwala na takie rzeczy :)
komentarz 17 października 2015 przez parimple Początkujący (260 p.)
Rzeczywiście. Dzięki!
komentarz 17 października 2015 przez parimple Początkujący (260 p.)
#include <iostream>
#include <cmath>
using namespace std;
int zasob[3], cena[3] = {20000, 7000, 2000}, reszta[3], x;

int main()
{
    
    cout<<"ile masz matalu?"<<endl;
    cin>>zasob[0];
    cout<<"ile masz kryształu?"<<endl;
    cin>>zasob[1];
    cout<<"ile masz deuteru?"<<endl;
    cin>>zasob[2];
    for (int i=0; i<3; i++) {
        cout<<zasob[i]<<endl;
        
    }
    cout<<endl;
    for (int i=0; i<3; i++) {
        cout<<cena[i]<<endl;
    }
    
    for (int i=0; i<3; i++) {
        reszta[i] = zasob[i]/cena[i];
    }
    x = reszta[0];
    for (int i=0; i<3; i++) {
        if (x>reszta[i]) x=reszta[i];
        
    }
    
    cout<<endl<<x<<endl;
    
    
    
    
    
    
    return 0;
    
}

Działający kod.

0 głosów
odpowiedź 17 lipca 2016 przez Dawid1995 Nowicjusz (140 p.)
Chciałem się zapytac czy kod jest dobrze wykonany, co można ewentualnie dodać lub pominac aby kod był bardziej przejrzysty?

 

#include <iostream>
#include <cmath>
#include <iomanip>
#include <windows.h>

using namespace std;
float m,k,d,krazownik_m,krazownik_k,krazownik_d;
int c,ile;
int main()
{
    cout<<"ile mam wykonac prob: "<<endl;
    cin>>ile;
    for(int i=0; i<ile; i++)
    {
        system("cls");
        cout << "Ile masz metalu: ";
        cin>>m;
        cout << "Ile masz krysztalu: ";
        cin>>k;
        cout << "Ile masz deuteru: ";
        cin>>d;

        if((krazownik_m=m/20000)&&(krazownik_k=k/7000)&&(krazownik_d=d/2000))
        {
            cout<<trunc(krazownik_m)<<endl;
            cout<<trunc(krazownik_k)<<endl;
            cout<<trunc(krazownik_d)<<endl;

            c=krazownik_m;
            if(krazownik_k<=c) c=krazownik_k;
            if(krazownik_d<=c) c=krazownik_d;

            if((m<0)||(k<0)||(d<0))
            {
                cout<<"Niepoprawne dane!"<<endl;
                Sleep(3000);

            }
            else if(c>1)
            {
                cout<<"Mozesz kupic "<<c<<" krazownikow!"<<endl;
                Sleep(3000);

            }
            else if(c==1)
            {
                cout<<"Mozesz kupic "<<c<<" krazownik!"<<endl;
                Sleep(3000);

            }
            else if(c<1)
            {
                cout<<"Nie stac Cie na nowe statki !"<<endl;
                Sleep(3000);


            }
        }

    }
    return 0;
}

 

Podobne pytania

+1 głos
2 odpowiedzi 1,020 wizyt
0 głosów
2 odpowiedzi 178 wizyt
pytanie zadane 10 grudnia 2015 w C i C++ przez Buzzastral Nowicjusz (120 p.)
+1 głos
1 odpowiedź 977 wizyt

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

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

...