J'ai completer mon code, voici l'entiereté :
Dites moi ou sont mes erreur pour le float svp. merci bcp pour tous !!!
code :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
struct produit {
char origine;
long NumProduit;
char NomProduit[30];
char UniteMesure[10];
float Prix;
char TypeProduit[20];
int categorie;
};
short EncodeProduit (struct produit [], int, long [], int, int, int);
short RechercheNumProd (struct produit[], int, long []);
void InsertionNumProd (struct produit[], long[], int);
int main ()
{
int nproduit=0, ProduitB=0, ProduitE=0, index[100];
int enc,i;
char data[100][56];
long numprod[100];
struct produit ListeProduits[100];
i=0;
do
{
printf("Produit n%d : ", i+1);
printf("\n\n" );
enc=EncodeProduit(ListeProduits, i, numprod, nproduit, ProduitB, ProduitE);
if (ListeProduits[i].origine=='B')
{
ProduitB++;
}
else
{
if (ListeProduits[i].origine=='E')
{
ProduitE++;
}
}
if (ListeProduits[i].origine!=0x0A)
{
nproduit++;
}
system("cls" );
i++;
}
while (enc==1);
for (i=0;i<nproduit;i++)
{
printf("%ld ", numprod[i]);
}
system("pause" );
}
short EncodeProduit (struct produit ListeProduits[], int i, long numprod [], int nproduit, int ProduitB, int ProduitE)
{
int r, tp, cp, verif;
char v[3][30]={"Fini", "Semi-Fini", "Matiere Premiere"};
do
{
printf("Quel est l'origine ? " );
fflush (stdin);
scanf("%c", &ListeProduits[i].origine);
}
while (ListeProduits[i].origine!=0x0A && ListeProduits[i].origine!='B' && ListeProduits[i].origine!='E');
if (ListeProduits[i].origine!=0x0A)
{
printf("Entrez le numero du produit : " );
scanf("%ld", &ListeProduits[i].NumProduit);
do
{
verif=RechercheNumProd (ListeProduits, i, numprod);
}
while (verif==0);
InsertionNumProd (ListeProduits, numprod, i);
printf("Entrez le nom du produit : " );
fflush (stdin);
gets (ListeProduits[i].NomProduit);
printf("Entrez l'unite du produit : " );
fflush (stdin);
gets (ListeProduits[i].UniteMesure);
printf("Entrez le prix du produit : " );
scanf("%f", &ListeProduits[i].Prix);
printf("Entrez le type du produit : " );
printf("\n\n\t1.\tFini\n\t2.\tSemi-fini\n\t3.\tMatiere Premiere\n" );
scanf ("%d", &tp);
strcpy (ListeProduits[i].TypeProduit,v[tp-1]);
printf("\n\nEntrez la categorie du produit : " );
printf("\n\n\t0.\tNon Dangereux\n\t1.\tDangereux\n" );
scanf ("%d", &cp);
ListeProduits[i].categorie=cp;
r=1;
}
else
{
r=0;
}
return r;
}
short RechercheNumProd (struct produit ListeProduits[], int i, long numprod[])
{
int t;
t=i;
while (t>=0)
{
if (ListeProduits[i].NumProduit==numprod[t])
{
printf("Numero de produit deja entrer..." );
printf("Veuillez entrez a nouveau le numero du produit : " );
scanf("%ld", &ListeProduits[i].NumProduit);
return 0;
}
t--;
}
return 1;
}
void InsertionNumProd (struct produit ListeProduits[], long numprod [], int i)
{
int t;
t=i-1;
while ((t>=0) && (ListeProduits[i].NumProduit<numprod[t]))
{
numprod[t+1]=numprod[t];
t--;
}
numprod[t+1]=ListeProduits[i].NumProduit;
}