Beug programme !

Bonsoir, voila je test un programme en c pour lundi mais j’ai quelques erreur lors de la compilation avec dev c++ :

Je vois pas d’ou les erreurs pourrait venir !

Voici le code source si vous voulez tester :

[code]#include <stdio.h>
main()
{

float TTC;
float HT;
float nbk;
const float TVA=0.196;

/Début/
printf (« HT »);
scanf ("%f,HT");
printf « Saisir la quantité »
scanf ("%f,nbk"); /J’ai une erreue à cette ligne mais je ne vois toujours pas d’ou ça pourrai venir !/
TTC=(HT+HT*TTC)*TVA;
printf ("Le total est: %f ",TTC);
/Fin/
}
[/code]

merci de votre aide !

[code]
#include <stdio.h>

int main()
{

float TTC;
float HT;
float nbk;
const float TVA=0.196;
int c;

/* Début */
printf ("HT");
scanf ("%f", &HT");
while ( (c = getchar()) != '\n' && c != EOF );

printf ("Saisir la quantité");
scanf ("%f", &nbk);
while ( (c = getchar()) != '\n' && c != EOF );

TTC = (HT + HT * TTC) * TVA;
printf ("Le total est: %f ", TTC);

/* Fin */
return 0;

} [/code]

  • tu as oublié les parenthèses pour le printf
  • tes scanfs étaient faux, et pour stocker la valeur saisie, tu dois passer l’adresse des variables.
  • le while ((c = getchar()) != ‘\n’ && c != EOF); c’est pour vider les caractères éventuels restants dans le buffer stdin : après un scanf(), il va te rester au moins un ‘\n’ qui sera interprété lors du prochain appel (et c’est pas ce que tu souhaites)
  • il manquait le return 0 à la fin de main() et le int avant main(). main() retourne un int.

bonsoir,
ça y’est, ça commence … (elle passe à l’attaque … :smiling_imp: )
il vient d’où ce code source ? de ton cru ? ou c’est un code piégé pour vous faire chercher la ptite bête ?
Ne connaissant pas le C, je vais essayer de pas trop dire de bêtise … déjà :

  • commence par mettre des commentaires, des vrais, pour ceux qui savent pas du premier coup d’oeil à quoi servent ces lignes mais qui ont quelques notions de programmation …
  • c’est normal d’avoir tantôt la fonction printf avec des parenthèses (ligne 8-13) et tantôt sans ( ligne 10) ?
  • ça parle de ligne 4 et de constante (ma numérotation de ligne serait à revoir ?) : est-ce qu’elle est bien déclarée cette contante TVA … sans jeu de mot !!!

Note qu’une string comme ça en dure, c’est aussi une constante … non j’en reviens à : printf "Saisir la quantité" :open_mouth: C’est pas du bash quand même le C lol !! où sont les parenthèse, et surtout le point virgule ??!!

[quote=“neness”]Voici le code source si vous voulez tester :
[/quote] salut ciol …
ouaip ben ya une sacrée différence entre le souce que tu montres neness, et celui de ciol … tu as decidé de faire de nous des chauves jusqu’à épuisement ?!

Merci Ciol !

Mais quand je compile j’ai tout de même des erreurs :

En tout cas c’est bien d’avoir détailler et mis le code source, car je patoge un peu !

:wink:

vire la double quote à la fin du scanf surligné.
ça devrait rouler, après

j’ai rien suivi, mais ça saute aux yeux:

bah celui là il est facile… je fais pas de prog du tout mais je peux te dire qu’en enlevant le guillement après HT ça marche beaucoup mieux :wink:

EDIT : arf je me suis fait double-griller :laughing:

il se peut que l’erreur de la ligne 16 ne découle que de ce qui précède :

je vois aucune raison à la présence de " aprés HT, tous guillemets, normalement pour encadrer des strings, fonctionnent par paire, la y’en a un fermant, et pas d’ouvrant …

[quote=“barbak”]bah celui là il est facile… je fais pas de prog du tout mais je peux te dire qu’en enlevant le guillement après HT ça marche beaucoup mieux :wink:[/quote]ptet ben, d’ailleurs… pis t’as qu’a tester avant de poster.

[quote=“barbak”]EDIT : arf je me suis fait double-griller :laughing:[/quote]pfff moi aussi … :smiley: ça fait deux fois en plus !!

Il faudrait faire des efforts un peu… Je n’avais pas testé le code avant de poster désolé.

édition : ce n’est pas scanf("%f", “&HT”) mais bien scanf("%f", &HT)
Ah oui, si tu veux que ce soit jolie, il faut rajouter un ‘\n’ à la fin des printf pour sauter une ligne, ex. printf(“Blablabla.\n”);

je sens qu’il y en a qui s’ennuient. :laughing:

ça fonctionne merci mais le coups du :

while ( (c = getchar()) != ‘\n’ && c != EOF );

pas très bien saisi l’utilité en + c long pour apprendre par coeur ça le fais pas trop !

:wink:

ah les femmes… jamais contentes :laughing:

t’as raison :smiley: :smiley: :smiley:
Bon je vais me replonger dans ce que j’appelle mon script de la mort … vous marrez pas … (voui je dépéris là) :smiley: :smiley: c’est en bash pour controler toutes les install et les bugs pour plus se retrouver genre sans X … vous marrez pas sans dec … et pour savoir ce qu’on a installé et quand … Oui on va me dire que aptitude le fait en 5 lignes de code, moi j’en suis à 1000 mais bon … c’est lourd que mon apache marche pas bien, j’aimerai le mettre à notre disposition …bon j’y go !

[quote=“neness”]… en + c long pour apprendre par coeur ça le fais pas trop :wink:[/quote]Mais qui te parle d’apprendre par coeur ?!
Comprendre , le maitre mot c’est comprendre … figure toi qu’un programmeur à toujours le nez fourré dans sa doc, soit net soit bouquin … impossible d’apprendre par coeur …

Probablement que cette boucle sert à lire les caractères entrés au clavier:
Tant que le caractère est différent de “\n” (retour à la ligne, ‘enter’) ou différent de EOF (fin de fichier, ou de flux dans ce cas, ‘ctrl + D’ je sais pas) ben il lit les caractères et les met dans le tampon …

Tout a fait d’accord avec toi usinagaz c’est d’ailleurs pour ca que ca me fait rire les profs qui nous font faire des programmes sur feuilles sans docs et sans acces a un pc ou a un quelconque manuel :stuck_out_tongue:

C’est plutot galere mais bon faut s’y faire

on demandera l’avis de fran.b … mais je me dis aussi que ça peut avoir un certain interet (trés relatif) pour valider certain acquis, plus au niveau conception peut-être, d’être en condition de sevrage de docs …
mais c’est clair que 99 % des programmes (mini prog) fait sur le papier seront incompilables … à moins d’un mozart du codage …

:smt061