Ten eerste zie ik niet in waarom je 'a' als global moet declareren. Hetzelfde voor 'bedrag'.
Daarna je programmatje even geherstructureerd in K&R-stijl. Tevens 'double' door 'float' vervangen omdat dit zuiniger is met het geheugen. In professionele 3d-games worden zelfs floats gebruikt, dus zal voor 2 getallen na de komma het zeker wel werken, of niet?
#include <cstdio>
#include <iostream>
using namespace std;
float geld[]={500, 200, 100, 50, 20, 10, 5, 2, 1, 0.50, 0.20, 0.10, 0.05, 0.02, 0.01};
void antwoord(int i, int aantal) {
if ((geld[i] >= 5) && (aantal == 1)) {
cout<<"je hebt "<<aantal <<" brief van "<<geld[i]<<" € nodig\n";
}
if ((geld[i] >= 5) && (aantal > 1)) {
cout<<"je hebt "<<aantal <<" brieven van "<<geld[i]<<" € nodig\n";
}
if ((geld[i] < 5) && (aantal == 1)) {
cout<<"je hebt "<<aantal <<" muntstuk van "<<geld[i]<<" € nodig\n";
}
if ((geld[i] < 5) && (aantal > 1)) {
cout<<"je hebt "<<aantal<<" muntstukken van "<<geld[i]<<" € nodig\n";
}
}
int main() {
float bedrag;
cout<<"Geef een bedrag in dat je wilt ontleden:\n";
cin>>bedrag;
for (int i = 0; geld[i] >= 0.01; i++) {
for (int a = 1; bedrag >= geld[i]; a++) {
bedrag = bedrag - geld[i];
if (geld[i]>bedrag) {
antwoord(i,a);
}
}
getchar();
return 0;
}
Probeer nu nog eens.
- SeySayux