Było pare drobnych błędów:
1. Po pierwsze u mnie kompilator krzyczy, że nie ma zainicjalizowanej zmiennej kwota. Wrzuciłem zaraz po int main(){
float kwota;
2. Pomyłka =+ na +=
ilosc += ilosc2;
3. Warunek while powinien być odwrotny:
do {
cout << "Za malo, dorzuc " << endl;
cout << "Ile pieniendzy dorzuciles?" << endl;
cin >> ilosc2;
ilosc += ilosc2;
} while (ilosc < kwota);
R = ilosc - kwota;
4. Zmiana warunku w while wyliczającym resztę. U Ciebie przekraczałeś tablicę i program pobierał dane z kosmosu. Stąd warunek i<7 (aby nie przekroczyć tablicy).
while (i<7 && R!= 0)
{
if (R >= N[i])
{
P = R / N[i];
R -= (N[i] * P); //zmniejsz reszte o wydany nominal
cout << N[i] << " zl x " << P << endl; //wypisz wynik
}
i++; //rozpatrz kolejny nominal
}
CAŁY KOD:
#include<iostream>
#include<fstream>
#include <math.h>
using namespace std;
void informacja()
{
cout << "=================" << endl;
cout << "POBIERANIE KUBKA..." << endl;
cout << "NALEWANIE ..." << endl;
cout << "MOZESZ ODEBRAC KAWE :) ZYCZYMY SMACZNEJ KAWUSI I MILEGO DNIA" << endl;
}
int main()
{
float kwota;
int wybor, wielkosc;
cout << "Podaj numer " << endl;
cin >> wybor;
switch (wybor)
{
case 1:
cout << "Wybrales Espresso" << endl;
break;
case 2:
cout << "Wybrales Flat White" << endl;
break;
case 3:
cout << "Wybrales Cappuccino" << endl;
break;
case 4:
cout << "Wybrales Latte Maccihiato" << endl;
break;
}
if (wybor > 4 || wybor < 1)
{
system("PAUSE");
return 0;
}
cout<<"Jesli chcesz mala kawe wybierz 1, jesli duza wybierz 2"<<endl;
cin >> wielkosc;
if (wielkosc == 1)
{
cout << "Wybrales mala kawe. Swietna decyzja" << endl;
}
else
{
cout<<"Wybrales duza kawe. Swietna decyzja" << endl;
}
switch (wybor)
{
case 1:
if (wielkosc == 1)
{
kwota = 6.20;
}
else
{
kwota = 9.5;
}
break;
case 2:
if (wielkosc == 1)
{
kwota = 8.70;
}
else
{
kwota = 12.50;
}
break;
case 3:
if (wielkosc == 1)
{
kwota = 5.0;
}
else
{
kwota = 7.20;
}
break;
case 4:
if (wielkosc == 1)
{
kwota = 7.50;
}
else
{
kwota = 10.0;
}
break;
}
cout <<"Wybrana przez ciebie kawa kosztuje " << kwota <<" zl. Wrzuc pieniadze"<< endl;
float ilosc, ilosc2,R=0;
cout << "Podaj ile pieniendzy wrzuciles" << endl;
cin >> ilosc;
if (ilosc < kwota)
{
do {
cout << "Za malo, dorzuc " << endl;
cout << "Ile pieniendzy dorzuciles?" << endl;
cin >> ilosc2;
ilosc += ilosc2;
} while (ilosc < kwota);
R = ilosc - kwota;
}
else
{
R = ilosc - kwota;
cout << "Reszta to: " << R <<" zl"<< endl;
}
//tablica dostepnych nominalow
double N[7] = { 10, 5, 2, 1, 0.5, 0.2, 0.1 };
int P=0;
int i = 0;
while (i<7 && R>= 0.0)
{
if (R >= N[i])
{
P = R / N[i];
R -= (N[i] * P); //zmniejsz reszte o wydany nominal
cout << N[i] << " zl x " << P << endl; //wypisz wynik
}
i++; //rozpatrz kolejny nominal
}
informacja();
system("PAUSE");
return 0;
}