• 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

0 głosów
1,177 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,969 wizyt
0 głosów
2 odpowiedzi 318 wizyt
pytanie zadane 10 grudnia 2015 w C i C++ przez Buzzastral Nowicjusz (120 p.)
+1 głos
1 odpowiedź 1,406 wizyt

93,631 zapytań

142,555 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...