Bonjour tt le monde,
j'ai un problème avec mon script en C.
Le voici
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
long ENTIER(float x)
{
return (long) x;
}
double ABSOLUE (double x)
{
if (x < 0)
return x * -1;
else
return x;
}
int SIGNE (double x)
{
if (x < 0)
return -1;
else
return 1;
}
int main(int argc, char *argv[])
{
int choix, x, nbdec;
float N, S;
do
{
printf("\n-1-saisie du nombre reel");
printf("\n-2-saisie du nombre de decimales ");
printf("\n-3-affichage du nombre saisi");
printf("\n-4-affichage arrondi inferieur");
printf("\n-5-affichage arrondi superieur");
printf("\n-6-affichage arrondi commercial");
printf("\n---------votre choix ?");
scanf("%d", &choix);
switch(choix)
{
case 1 :
{
printf("introduisez un nombre : " );
scanf("%f", &N);
break;
}
case 2 :
{
printf("introduisez le nombre de decimale :");
scanf("%d", &nbdec);
break;
}
case 3 :
{
printf("\n\nle nombre est %5.5f" ,N);
printf("\n\nle nombre de decimale est : %d\n\n", nbdec);
break;
}
case 4 :
{
S = SIGNE(N) * ENTIER (ABSOLUE(N));
printf("le nombre est %5.5f ==> %5.5f\n\n", N, S);
break;
}
case 5 :
{
S =SIGNE(N) * ENTIER (ABSOLUE(N) * pow(10., nbdec)) / pow(10., nbdec);
printf("le nombre est %5.5f ==> %5.5f \n\n", N, S);
break;
}
case 6 :
{
S = SIGNE(N) * ENTIER (ABSOLUE(N)+.5);
printf("\n l'arrondi de %5.5f ==> %5.5f\n\n ", N, S);
break;
}
}
}
while(choix!=0);
system("PAUSE");
return 0;
}
Quand je veux arrondir le nombre entré, en case 4, 5, 6, il ne le fait jamais et je ne vois pas ou j'ai une erreur,
si quelqu'un peut m'aiguiller je suis preneur...
Merci d'avance pour vos interventions
Configuration: Windows XP
Firefox 2.0.0.11