Signaler

Langage C (compilation) [Résolu/Fermé]

Posez votre question rafale69300 84Messages postés vendredi 31 octobre 2008Date d'inscription 15 juin 2010 Dernière intervention - Dernière réponse le 2 déc. 2008 à 12:40 par rafale69300
Bonjour, j'ai fait un code sur un distributeur de monnaie et je l'ai finis hier soir par contre j'ai quelque petites erreurs que je n'arrive pas a corrigé. Je vous laisse mon code et les fautes que le compilateur m'indique. Merci par avance de votre aide.

#include<stdio.h>
#include<stdlib.h>

void init_stock(int *ptst10,int *ptst5,int *ptst2, int *ptst1,int *ptst05, int *ptst02,int *ptst01,int *ptst005);
void decomposer_en_un(int *ptr05,int *ptr02,int *ptr01,int *ptr005);
void decomposer_en_deux(int *ptr1,int *ptr05,int *ptr02,int *ptr01,int *ptr005);
void decomposer_en_cinq(int *ptr2,int *ptr1,int *ptr05,int *ptr02,int *ptr01,int *ptr005);
void decomposer_en_dix(int *ptr2,int *ptr1,int *ptr05,int *ptr02,int *ptr01,int *ptr005);
void maj_stock(int mont,int r2,int r1,int r05,int r02,int r01,int r005,int *ptst10,int *ptst5,int *ptst2,int *ptst1,int *ptst05,int *ptst02,int *ptst01,int *ptst005);
void decomposer(float mont,int *ptr2,int *ptr1,int *ptr05,int *ptr02,int *ptr01,int *ptr005);
int main(void)
{
        int st10,st5,st2,st1,st05,st02,st01,st005; /*les coupures en stock*/
        int r2,r1,r05,r02,r01,r005; /*les pieces rendues*/
        int montant; /*la coupure introduite dans la machine*/
        char rep[2]; /*réponse à la question "Autre client (O/N) ?"*/
        init_stock(&st10,&st5,&st2,&st1,&st05,&st02,&st01,&st005);
        do{
                printf("\nSaisir le montant de la pièce ou du billet");
                scanf("%d",&montant);
                while(montant != 10 && montant != 5 && montant != 2 && montant != 1){
                        printf("\nMontant saisie invalide, ressaisir");
                        scanf("%d",&montant);
                }
                r2 = r1 = r05 = r02 = r01 =r005 = 0;
                decomposer(montant,&r2,&r1,&r05,&r02,&r01,&r005);
                maj_stock(montant,r2,r1,r05,r02,r01,r005,&st10,&st5,&st2,&st1,&st05,&st02,&st01,&st005);
                printf("\nAutre client (O/N) ?");
                scanf("%s",rep);
        while(rep[0] != 'n');
        return EXIT_SUCCESS;
}

void init_stock(int *ptst10,int *ptst5,int *ptst2, int *ptst1,int *ptst05, int *ptst02,int *ptst01,int *ptst005)
{
        *ptst10 = *ptst5 = 0;
        *ptst2 = *ptst1 = 20;
        *ptst05 = *ptst02 = 30;
        *ptst01 = *ptst005 = 50;
}

void decomposer_en_un(int *ptr05,int *ptr02,int *ptr01,int *ptr005)
{
        *ptr05 = *ptr02 =  1;
        *ptr01 = *ptr005 = 2;
}


void decomposer_en_deux(int *ptr1,int *ptr05,int *ptr02,int *ptr01,int *ptr005)
{
        decomposer_en_un(ptr05,ptr02,ptr01,ptr005);
        *ptr1 = 1;
}


void decomposer_en_cinq(int *ptr2,int *ptr1,int *ptr05,int *ptr02,int *ptr01,int *ptr005)
{
        decomposer_en_deux(ptr1,ptr05,ptr02,ptr01,ptr005);
        *ptr2 = 1;
        *ptr1++;
}


void decomposer_en_dix(int *ptr2,int *ptr1,int *ptr05,int *ptr02,int *ptr01,int *ptr005)
{
        decomposer_en_cinq(ptr2,ptr1,ptr05,ptr02,ptr01,ptr005);
        *ptr2+=2;
         *ptr1++;
{


void maj_stock(int mont,int r2,int r1,int r05,int r02,int r01,int r005,int *ptst10,int *ptst5,int *ptst2,int *ptst1,int *ptst05,int *ptst02,int *ptst01,int *ptst005)
{
        if(*ptst2 >= r2 && *ptst1 >= r1 && *ptst05 >= r05 && *ptst02 >= r02 && *ptst01 >= r01 && *ptst005 >= r005){
                *ptst2-=r2;
                *ptst1-=r1;
                *ptst05-=r05;
                *ptst02-=r02;
                *ptst01-=r01;
                *ptst005-=r005;
                switch(mont){
                        case 10:
                                *ptst10++;
                        break;
                        case 5:
                                *ptst5++;
                        break;
                        case 2:
                                *ptst2++;
                        break;
                        case 1:
                                *ptst1++;
                        break;
        else
                printf("\nLe stock est insuffissant");
        }
        }
}


Voici mes fautes :

Dans la fonction «main» :
distributeur_monnaie.c:35: erreur: expected «while» before «void»
distributeur_monnaie.c: Dans la fonction «maj_stock» :
distributeur_monnaie.c:95: erreur: expected expression before «else»
distributeur_monnaie.c: Dans la fonction «decomposer_en_dix» :
distributeur_monnaie.c:112: erreur: expected declaration or statement at end of input
distributeur_monnaie.c:112: erreur: expected declaration or statement at end of input
distributeur_monnaie.c: Dans la fonction «main» :
distributeur_monnaie.c:112: erreur: expected declaration or statement at end of input
Utile
+3
plus moins
Merci bien pour ton aide !!!
Cette réponse vous a-t-elle aidé ?  
Utile
+0
plus moins
Salut !
Tu as plein d'erreurs d'accolades en fait dans ton code.
une dans le main, tu ne ferme pas le do{...}while
une dans decomposition en dix, ou tu rouvre une accolade au lieu de la fermé, et une dans maj_stock le else est inclus dan le switch et le if alors qu'il devrais être dehors.

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !