Problème valeurs variables en C
Résolu
Bonjour,
Quand j'ai testé un gros programme de calculs, la valeur qui s'affichait était encore et toujours 0 !
J'ai voulu tester en faisait juste :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
double nombre = 5;
printf("le nombre est %ld\n\n",nombre);
system("pause");
return 0;
mais même avec ce code source la console affiche toujours "le nombre esst 0"
Quand j'ai testé un gros programme de calculs, la valeur qui s'affichait était encore et toujours 0 !
J'ai voulu tester en faisait juste :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[])
{
double nombre = 5;
printf("le nombre est %ld\n\n",nombre);
system("pause");
return 0;
mais même avec ce code source la console affiche toujours "le nombre esst 0"
A voir également:
- Problème valeurs variables en C
- Excel liste de valeurs - Guide
- Trier des valeurs sur excel - Guide
- Nvidia impossible de récupérer les valeurs actuelles ✓ - Forum Jeux PC
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif ci-dessous. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des quatre premières colonnes. il manque 5 valeurs dans le tableau ci-dessous. retrouvez-les dans votre tableau, puis reportez-les arrondies à l’entier le plus proche. ✓ - Forum Excel
- Formule excel si compris entre plusieurs valeurs ✓ - Forum Excel
4 réponses
Salut,
Plusieurs erreurs :
tu crée un nombre "réel" avec
(jusque là tout va bien)
Ensuite tu essaye de mettre un entier dedans :
(La déjà ya un petit probleme)
serait plus correct
et enfin le plus important : tu veux l'afficher avec %ld, or %ld permet d'afficher des long entiers
%l définit le caractère "long"
et ensuite pour un entier c'est %d
pour un double ou float c'est %f (pour un long double ca serait %lf )
donc ici ce n'est pas non plus un long double, donc tu devrais utiliser %f
en résumé :
Pour info :
Plusieurs erreurs :
tu crée un nombre "réel" avec
double nombre
(jusque là tout va bien)
Ensuite tu essaye de mettre un entier dedans :
nombre = 5;
(La déjà ya un petit probleme)
nombre = 5.0;
serait plus correct
et enfin le plus important : tu veux l'afficher avec %ld, or %ld permet d'afficher des long entiers
%l définit le caractère "long"
et ensuite pour un entier c'est %d
pour un double ou float c'est %f (pour un long double ca serait %lf )
donc ici ce n'est pas non plus un long double, donc tu devrais utiliser %f
en résumé :
int main(int argc, char *argv[])
{
double nombre = 5.0;
printf("le nombre est %f\n\n",nombre);
system("pause");
return 0;
}
Pour info :
Type printf() scanf() char %c %d %i %c short %hd %d %i %hd int %d %i %d %i long %ld %ld float %e %f %g %e %f %g double %e %f %g %le %lf %lg long double %Le %Lf %Lg %Le %Lf %Lg
Ensuite tu essaye de mettre un entier dedans...
Non en C on a part de loin mais on a quand même des opérateurs de cast implicite... Il peut donc tout à fait écrire :
Préciser la décimale n'a un intérêt en C que quand tu fais intervenir une constante dans un calcul (donc pas au travers d'une variable), car selon que tu mettes les décimales ou pas, la constantes interprétée en tant qu'entier ou en tant que flottant. Du coup il peut s'ensuivre une suite de casts implicites désagréables.
Ceci dit ça même si ça ne nuit pas ici, ça ne coûte rien de mettre une décimale.
Pour le reste je suis d'accord. Sachant que cette question a déjà été traitée ici :
http://www.commentcamarche.net/forum/affich 12864782 operatins mathematiqus en c#3
Enfin il reste quelques soucis dans ton programme (ce qui est marrant c'est que ceux évoqués ici) :
http://www.commentcamarche.net/forum/affich 12864782 operatins mathematiqus en c#5
Bonne chance
Non en C on a part de loin mais on a quand même des opérateurs de cast implicite... Il peut donc tout à fait écrire :
double x = 5;
Préciser la décimale n'a un intérêt en C que quand tu fais intervenir une constante dans un calcul (donc pas au travers d'une variable), car selon que tu mettes les décimales ou pas, la constantes interprétée en tant qu'entier ou en tant que flottant. Du coup il peut s'ensuivre une suite de casts implicites désagréables.
Ceci dit ça même si ça ne nuit pas ici, ça ne coûte rien de mettre une décimale.
Pour le reste je suis d'accord. Sachant que cette question a déjà été traitée ici :
http://www.commentcamarche.net/forum/affich 12864782 operatins mathematiqus en c#3
Enfin il reste quelques soucis dans ton programme (ce qui est marrant c'est que ceux évoqués ici) :
http://www.commentcamarche.net/forum/affich 12864782 operatins mathematiqus en c#5
Bonne chance