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
|
#include <stdio.h>
#include <stdlib.h>
/*
GL: entete non standard est qui plus est inutile ici. A enlever
*/
#include <conio.h>
/*
GL: les formes standard de main sont
int main(void) et
int main(int, char**)
*/
void main ()
{
/*
GL: la syntaxe correcte est char tmp[80];
*/
char tmp(80);
float a,b;
printf ("indique ton premier \n");
/*
GL: gets est une source importante deprobleme, en effet il ne verifie pas
la taille du buffer, il y a risque important d'overflow.
Il ne faut pas utiliser gets() mais fgets().
*/
gets(tmp);
/*
GL:
il manque une virgule entre tmp et ".
Le formateur %fd n'existe pas.
Pas de verification du retour de sscanf(), la conversion peut ne pas se derouler correctement.
*/
sscanf(tmp"%fd", &a);
printf ("indique ton 2 eme \n");
gets(tmp);
/*
GL: idem ci-dessus.
*/
sscanf(tmp"%fd", &b);
/*
GL:
En C90, les déclaration de variables doivent se faire en début de bloc.
Et si b vaut 0 ? Il faudrait vérifier.
*/
float c=a/b;
printf("%fd/%fd=%fd\n", a,b,c);
system("PAUSE");
} |
Partager