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
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
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"
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();
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 ...
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 ...
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
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.