Bonjour a toutes et a tous ,
Puisque le scanf n'est pas conseillé , je cherche a le remplacer par une fonction plus sécurisé , du genre fgets ou autre chose . Pouvez vous m'apporter votre aide ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <stdio.h>
#define prixCle 10
#define prixOrdi 500
float calcul(int nArticle,float prix);
 
int main(void)
{
 char tab[3];
 float remiseIm,remise,prix,result,paiement,billet500;
 int nArticle,choix,billet100,billet50,billet10,pieces2,pieces1,
rendu;
 choix=0;prix=0;remise=0;remiseIm=0;nArticle=0;paiement=0; result=0;rendu=0;billet100=0;billet50=0;billet10=0;pieces2=0;
 pieces1=0;
 puts("***************************************************\n");
puts("********** |BIENVENUE CHEZ OIM| *******************\n");
puts("***************************************************\n");
 
 puts("Article disponible en stock:\n");
 
 puts("\tCHOIX 1:cle usb");
 puts("\t(prix a l'unité: 10 euros)\n");
 
 puts("\tCHOIX 2:ordinateur portable(10%% remise supplementaire)");
 puts("\t(prix a l'unité: 500 euros)\n");
 
 puts("\t10 article acheté,5%% de remise sur tous les articles");
 puts("\t50 article acheté,10%% de remise sur tous les articles\n");
 
 printf("Quel est votre choix?\n");
 scanf("%d",&choix);
 while((choix!=1)&&(choix!=2))
   {
    printf("Mauvais choix,recommencez\n");
    scanf("%d",&choix);
   }
 do
   {printf("Combien d'article désirez vous?\n"); 
    scanf("%d",&nArticle); 
   }while(nArticle<1);
 
 switch(choix)
 {
  case 1:
      result=calcul(nArticle,prixCle);
      printf("Vous avez choisis %d cle usb\n",nArticle);
      printf("Votre montant total sera de:%4.0f Euros\n",result);
      break; 
  case 2:
 
      result=calcul(nArticle,prixOrdi);
      printf("Vous avez choisis %d ordinateurs portable\n",nArticle);
      printf("Votre montant total sera de:%5.0f Euros\n",result);
      remise=(result*10)/100;
      result=result-remise;
      printf("Le montant total apres remise supplémentaire:%5.0f Euros\n",result);
      break;
  default:
      break;
 }
 printf("\n\n");
 printf("________________________ PAIEMENT_________________________\n\n");
 printf("Paiement par espece seulement disponible!\n");
 printf("Quel sera le montant de votre paiement?\n");
 scanf("%f",&paiement);
 
 if(paiement<result)
   { printf("Votre paiement est insuffisant!\n");
     while(paiement<result)
     { printf("Entrez un montant plus élevé\n");
       scanf("%f",&paiement);
     }
   }
 else if(paiement==result)
  printf("Aucune monnaie a vous rendre\n");
 else(paiement>result);
 {
   rendu=paiement-result;
   billet100=rendu/100;
   rendu %= 100;
   billet50=rendu/50;
   rendu %= 50;
   billet10=rendu/10;
   rendu %= 10;
   pieces2=rendu/2;
   rendu %= 2;
   pieces1=rendu/1;
   rendu %= 1;
 
 printf("\n______________ MONNAIE RENDUE _____________________\n\n");
 printf("Nombre de billet de 100 Euros: %d\n",billet100);
 printf("Nombre de billet de 50 Euros: %d\n",billet50);
 printf("Nombre de bilet de 10 Euros: %d\n",billet10);
 printf("Nombre de pieces de 2 Euros: %d\n",pieces2);
 printf("Nombre de pieces de 1 Euros: %d\n",pieces1);
 }
 printf("\n\n");
 printf("\t--> code promo pour un futur achat  :\"MANGER DES POMMES!\"\n");
 
 return 0;
}
 
 float calcul(int nArticle,float prix)
 {float remise=0,result=0;
   if((nArticle>=10) && (nArticle<50))
     {
      remise=(prix*5)/100;
      result=prix-remise;
      result=result*nArticle;
     }
   else if(nArticle>=50)
     {
      remise=(prix*10)/100;
      result=prix-remise;
      result=result*nArticle;
     }
   else
     {
      result=prix*nArticle;
     }
   return result;
 }