Jak zamienić wartość jednego int podajać inny int?

0

Przykładowo chciałbym aby wyglądało to tak:

Program ma liczyć ceny produktów
np: masło jest po 2zł, mleko 3zł a woda po 1zł. I program ma pytać jakie produkty mam w koszyku.

Wtedy podaje co jest produktem nr1 potem co jest produktem nr2 i tak dalej.
Zapisuje:
masło
woda
Wychodzi że wartość koszyka to 3

W następnym przypadku chciał bym podać co innego np:
woda
mleko
Wychodzi 4

Napisałem program ale okazuje się że nie działa po mojej myśli. Wygląda to tak:

    int maslo=2, mleko=3, woda=1;

    int produkt1, produkt2;

    cout<<"koszyk"<<endl;

    cout<<"nr1:";
    cin>>produkt1;
    
    cout<<"nr2:";
    cin>>produkt2;

    cout<<"wartosc koszyka:"<<produkt1+produkt2;

I chciał bym aby działał w taki sposób że trzeba wpisać nazwę produktu np. mleko a nie cenę np. 3
Skoro mleko=3 to wpisując mleko do produkt1 powinno przypisać się 3 ale program przestaje działać.
Działa poprawnie jak napisze cenę produktu a nie nazwę.
Nie mam pojęcia jakiej funkcji mam użyć albo co robię nie tak aby program działał poprawnie.

Mam nadzieje że przedstawiłem to w miarę jasno.

2

produkt1 jest zmienną typu int, więc trzyma liczby całkowite (z odpowiedniego przedziału). mleko to nie jest liczba całkowita, tylko ciąg liter, zatem programowi nie udaje się z niego zrobić liczby.

Nazwy zmiennych są szczegółem implementacyjnym i nie są widoczne na zewnątrz — po skompilowaniu znikają i nie ma ich już nigdzie w wynikowym programie.

Chcesz mieć słownik wartości: std::map, gdzie kluczem jest ciąg znaków std::string, a wartością int.

3
struct produkt {
std::string mNazwa;
int mCenna // Zastanów się czy aby na pewno int
}

A reszta jako zadanie domowe i teraz podpowiedzi:

edit:
jak wspomniałem wyżej zastanów się też nad typem hint
https://en.cppreference.com/w/cpp/numeric/math/round

1 użytkowników online, w tym zalogowanych: 0, gości: 1