#include <stdio.h>
#include <stdlib.h>
#define DELTA 0.001

double demanderBoisson()
{
    int choixBoisson;
    double prixBoisson;

    printf("Choisissez votre boisson :\n");
    printf("1 - Café long [1.5€]\n");
    printf("2 - Café cours [0.8€]\n");
    printf("Votre choix :");
    scanf("%d", &choixBoisson);
    switch (choixBoisson){
    case 1:
        prixBoisson = 1.5;
        break;
    case 2:
        prixBoisson = 0.8;
        break;
    }
    return prixBoisson;
}

double attendrePiece(double prixBoisson, int pieceUser[])
{
    int piece;
    double somme = 0;

    do{
        printf("Le prix est de %.1f€\n", prixBoisson);
        printf("Monnaie :\n");
        printf("1 - 20€\n");
        printf("2 - 10€\n");
        printf("3 - 5€\n");
        printf("4 - 2€\n");
        printf("5 - 1€\n");
        printf("6 - 0.5€\n");
        printf("7 - 0.2€\n");
        printf("8 - 0.1€\n");
        printf("Piece a entrer :");
        scanf("%d", &piece);
        switch (piece){
        case 1:
            somme = somme + 20;
            pieceUser[0]++;
            break;
        case 2:
            somme = somme + 10;
            pieceUser[1]++;
            break;
        case 3:
            somme = somme + 5;
            pieceUser[2]++;
            break;
        case 4:
            somme = somme + 2;
            pieceUser[3]++;
            break;
        case 5:
            somme = somme + 1;
            pieceUser[4]++;
            break;
        case 6:
            somme = somme + 0.5;
            pieceUser[5]++;
            break;
        case 7:
            somme = somme + 0.2;
            pieceUser[6]++;
            break;
        case 8:
            somme = somme + 0.1;
            pieceUser[7]++;
            break;
        }
        printf("La somme que vous avez entree est de %.1f€\n", somme);
    }while(prixBoisson > somme);
    return somme - prixBoisson;
}

double rendrePiece(double rendrePrix, double valPiece[], int nbPiece[], int pieceRendu[])
{
    int boucle;
// mise à jours des pieces a rendre
    for(boucle = 0; boucle < 8; boucle++){
        // je peux rendre des pieces de la valeur courante
        if(valPiece[boucle] <= rendrePrix){
            // tant que je peux rendre des pieces de la valeur courante, je le fais
            while((rendrePrix > (valPiece[boucle]-DELTA)) && (nbPiece[boucle] != 0)){
                rendrePrix = rendrePrix - valPiece[boucle];
                pieceRendu[boucle]++;
                nbPiece[boucle]--;
            }
        }
    }

    return rendrePrix;
}
