CHKDSK2K
Messages postés144Date d'inscriptionmardi 2 septembre 2003StatutMembreDernière intervention18 septembre 2007
-
17 sept. 2004 à 19:31
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
17 sept. 2004 à 23:19
Bonjour j'ai crée un p'tit programme (mon tout premier) en c
mon probleme est que quand je change les variables int vers double il ne fonctionne plus ...
voici le code source
#include <stdio.h>
void main()
{
int Art_Nbre_Tot = 0;
int Art_Nbre_Enc = 0;
int Prix_HTVA_Enc = 0;
int Prix_HTVA_Total = 0;
int Prix_TVA_Enc = 0;
int Prix_TVA_Total = 0;
int Pourcentage_TVA_Enc = 0;
int Prix_Total = 0;
system("CLS");
printf("+---------------------------------------------------+\n");
printf("| Bonjour et bienvenue dans mon premier programme C |\n");
printf("| Il va calculer les prix des articles TTC |\n");
printf("+---------------------------------------------------+\n");
getch();
printf("Vous avez combien d'articles ? ");
scanf("%d",&Art_Nbre_Tot);
printf("\n");
printf("Quel est le montant de votre de l'article %d ? ",Art_Nbre_Enc);
scanf("%d",&Prix_HTVA_Enc);
printf("Quel est le \%% de tva de l'article %d ? ",Art_Nbre_Enc);
scanf("%d",&Pourcentage_TVA_Enc);
/*Calcul le montant de la TVA*/
Prix_TVA_Enc = Prix_HTVA_Enc / 100 * Pourcentage_TVA_Enc;
Prix_TVA_Total = Prix_TVA_Total + Prix_TVA_Enc;
/*Calcul le prix HTVA*/
Prix_HTVA_Total = Prix_HTVA_Total + Prix_HTVA_Enc;
};
Prix_Total = Prix_TVA_Total + Prix_HTVA_Total;
printf("\nVous avez achete pour un montant HTTC de %d Euro",Prix_HTVA_Total);
printf("\nVous avez un total de TVA de %d Euro",Prix_TVA_Total);
printf("\nLe total des articles + la TVA = %d Euro \n",Prix_Total);
printf("\nMerci d'avoir utilis? mon programme");
return 0;
}
donc je voudrais changer int Art_Nbre_Tot 0; en double Art_Nbre_Tot 0; mais alors fonctionne pas ... savez vous me dire pourquoi ? svp merci :d
DOS-chkdsk-2K supprimer.chkdsk@callantdavid.be.tf
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 17 sept. 2004 à 19:42
tous tes printf et scanf utilisent "%d", change pour "%lf" et devrait aller je pense ;)
Mais ca ne sert a rien par exemple ds le cas du nombre d'article total et enc (?), laisse en int car tu n'auras jamais 1.5 ordinateur par exemple.
Donc je repete :
%d pour int
%lf pour double
CHKDSK2K
Messages postés144Date d'inscriptionmardi 2 septembre 2003StatutMembreDernière intervention18 septembre 2007 17 sept. 2004 à 20:13
heu je sais pas mais quand je tape scanf(%lf,&var)
et que je lui donne d il plante le programme je voudrais qu'il me dise "vous devez donner un nombre"
thanks
DOS-chkdsk-2K
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_shown
Messages postés40Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention24 décembre 2007 17 sept. 2004 à 21:18
Salut, alors ya des erreurs dans les réponses :
pour une valeur entiere tu utilises int (%i) et ; pour une valeur réelle tu peux utiliser double (%d) ou float (%f) donc si tu déclares tes variables avec "int" dans ton scanf va falloir mettre %i et pas %d.
tu pourrais aussi ajouter une fonction a la fin du programme pour attendre avant de fermer la fenetre:
par exemple tu peux faire ca :
tu commences ton code juste apres le main par :
char chr;
while(chr != 'q'){
.................
et a la fin tu mets un truc du genre :
printf("\n\n\nveuillez maintenant appuyez sur <q> pour quitter ou sur une autre touche pour recommencer");
chr = getche();
cs_shown
Messages postés40Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention24 décembre 2007 17 sept. 2004 à 22:23
AlexMan tu te plantes, double c bien pour des réels c'est certain.
Les entiers comme le nom l'indique c int pour integer.
Et %f c pour float et %lf pour long float tu racontes vraiment n'imprte quoi pourquoi un double aurait l'abréviation "lf" ?...
Vérifies si tu sais pas ...
CHKDSK2K
Messages postés144Date d'inscriptionmardi 2 septembre 2003StatutMembreDernière intervention18 septembre 2007 17 sept. 2004 à 22:30
Petite question alors ?
(ne m'en veux pas je suis Newbie)
mais pourquoi dans le cs plus haut quand fait la var double xxx
et que je tape plus bas %d, xxx il ne veut pas ? mais quand je tape %f, xxx il fonctionne bien ? (je px me tromper je vais verrifier ...
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 17 sept. 2004 à 22:34
shown > AlexMAN a raison et fgets c'est pas comme gets, tu peux faire un controle de bord, la difference est fondamentale, c'est pour ca qu'on conseille toujours fgets pour lire sur stdin plutot que gets
cs_shown
Messages postés40Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention24 décembre 2007 17 sept. 2004 à 22:37
Deja commence par ajouter deux include :
#include <windows.h>
#include <conio.h>
la premiere pour system("CLS") et la deuxieme pour getch().
Sinon tu mélanges pas mal de choses:
si tu déclares tes variables avec double utilises partout %d
Par contre si tu veux utiliser float qui est largement suffisant tu mets partout %f et pas %d ou %lf.
float, double, et long float sont trois types pour des reels.
La seule différence c'est la précision et la place qu'ils occupent.
float est le plus approprié dans ton cas.