Witam. Dostałem takie polecenie i nie wiem czy dobrze napisałem program zgodnie z treścią. Prosiłbym o pomoc w przeanalizowaniu mojego kodu
- Napisz program, który najpierw czyta nominały (zadecyduj, czy przeliczać nominały na
najmniejsza jednostkę), a następnie w pętli czyta kwoty/reszty do tworzenia z najmniejszej
liczby nominałów metodą zachłanną. Wykonaj program dla wielu kwot/reszt.
(a) Jako danych użyj nominałów naszej waluty.
(b) Jako danych użyj monet i banknotów amerykańskiej waluty; w centach: 1 (penny), 5
(nickel), 10 (dime), 25 (quarter), 50 i w dolarach: 1, 2, 5, 10, 20, 50, 100, 200, 1000.
#include <iostream>
#include <stdlib.h>
using namespace std;
const short WIELKOSC_TAB = 14;
int *tab1;
int wybor;
int main()
{
while(true)
{
int r,p, i;
cout << "Wybierz nominal: " << endl;
cout << "1. polski zloty (przeliczony w groszach)" << endl;
cout << "2. amerykanski dolar (przeliczony w centach)" << endl;
cin>>wybor;
if(wybor==1 || wybor==2)
{
switch (wybor)
{
case 1:
tab1 = new int [WIELKOSC_TAB] {20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 20, 10, 5, 2, 1 }; // zloty w groszach
break;
case 2:
tab1 = new int [WIELKOSC_TAB] {100000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 25, 10, 5, 1 }; // dolar w centach
break;
}
}
else
{
cout << "Wybrales zla liczbe" << endl;
system("PAUSE");
return 0;
}
cout << "Podaj reszte do wyplacenia: ";
cin >> r;
i=0;
while (r>0)
{
if (r >= tab1[i])
{
p=r / tab1[i];
r=r-(tab1[i]*p);
cout << tab1[i] << " x " << p << endl;
}
i++;
}
delete [] tab1;
}
return 0;
}