my code is correct but i have debug error !
please help to resolve this problem ...
Quote:
Code:#include <stdio.h>
#include <stdlib.h>
#define ns printf("\n\n");
#define tg printf("\t\t\t");
int charint(char c)
{
int ret=1;
switch(c)
{
case'0':ret=0;break;
case'1':ret=1;break;
case'2':ret=2;break;
case'3':ret=3;break;
case'4':ret=4;break;
case'5':ret=5;break;
case'6':ret=6;break;
case'7':ret=7;break;
case'8':ret=8;break;
case'9':ret=9;break;
default:ret=-1;
}
return(ret);
}
/******* declaration d'un type de structure d'un seule boisson */
typedef struct nomb
{
int quantite; // q
int datefin[3]; // f
int prix; // x
int prix_achat; // a
char nom[20]; // *
}nomb;
/******* fin declaration un boisson ************************************/
void afficher_boisson(int p,nomb *boif)
{
system("cls");
for(int i=0;i<80;i++){printf("_");}
tg
printf("\01 nom : %s",(boif+p)->nom);ns
tg
printf("\01 prix : %i",(boif+p)->prix);ns
tg
printf("\01 prix achat : %i",(boif+p)->prix_achat);ns
tg
printf("\01 Quantite : %i",(boif+p)->quantite);ns
tg
printf("\01 Date Fin : %i/%i/%i\n",(boif+p)->datefin[0],(boif+p)->datefin[1],(boif+p)->datefin[2]);
for(i=0;i<80;i++){printf("_");}
}
/***************************************** Saisie prix ***********************************/
void saisieprix(int pos,nomb *boim)
{
printf("\01 Donnez nouveaux prix :\n");
fflush(stdin);
scanf("%i",&((boim+pos)->prix));
}
/*******************************************************************************************/
/************************************* Saisie prix achat ************************************/
void saisieprixach(int pos,nomb *boim)
{
printf("\01 Donnez nouveau prix d'achat :\n");
fflush(stdin);
scanf("%i",&((boim+pos)->prix_achat));
}
/*******************************************************************************************/
/********************************* Saisie Quantite **************************************/
void saisiequantite(int pos,nomb *boim)
{
printf("\01 donnez nouvelle Quantite :");
fflush(stdin);
scanf("%i",&((boim+pos)->quantite));
}
/*******************************************************************************************/
/*********************************** Saisie Nom ************************************/
void saisienom(int pos,nomb *boim)
{
printf("\01 Donnez nouveau Nom :");
fflush(stdin);
gets((boim+pos)->nom);
}
/*******************************************************************************************/
void saisiedate(int pos,nomb *boim)
{
/*************** prototypes ****************/
int charint(char);
/*******************************************/
int t=0,p=0;
char ch[50];
printf("\01 Donnez nouvelle date (jj\\mm\\aa) :");
fflush(stdin);
gets(ch);
for(int i=0;;i++)
{
if(charint(ch[i])>=0){t=(t*10)+charint(ch[i]);}
if(charint(ch[i])<0){(boim+pos)->datefin[p]=t;t=0;p++;}
if(ch[i]==NULL)break;
}
}
/*******************************************************************************************/
void ajoutstock(nomb *boij,int *nbst)
{
boij=(nomb*)realloc(boij,sizeof(nomb));
*nbst++;
saisieprix(*nbst,boij);
saisieprixach(*nbst,boij);
saisiequantite(*nbst,boij);
saisienom(*nbst,boij);
saisiedate(*nbst,boij);
}
void main()
{
nomb *bois;
int nb_boissons=0;
ajoutstock(bois,&nb_boissons);
afficher_boisson(nb_boissons,bois);
}