Plantage du programme

Fermé
roidusurf Messages postés 77 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 12 juillet 2013 - 14 déc. 2012 à 19:03
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 18 déc. 2012 à 22:59
Bonjour,
Je suis le tutoriel du site du zéro sur le langage C, je suis arrivé au chapitre sur les fonctions je me suis donc amusé à allé plus loin dans le programme de conversion euros-->franc en l'améliorant de la manière suivante:
Un premier menu où l'on choisis la conversion que l'on veut (menu principal):
1.devise
2.longueur
3.volume

Quand on choisit devise on n'a le choix entre:
1.euros
2.dollar Us
3.livre
4. dollar canadien
5.yen

Quand on choisit longueur on n'a le choix entre:
1.Kilometre\
2.hectometre
3.decametre\n");
4.metre
5.decimetre
6.centimetre
7.milimètre
8.micromètre
9.nanomètre
10.Miles

Une fois la devise choisi il doit normalement avoir demande de la somme à convertir via un scanf, mais le menu des devises se ré affichent et ensuite seulement on me demande la somme. Je m'explique imaginons que je choisisse euros et que je fasse entrée on me redemande la devise si je choisis une nouvelle fois euros la on me demande la somme.

Deuxième problème une fois la somme rentrée le programme plante.

De plus quand je choisis kilometre c'est le menu des devises qui apparaît

Voici mon code: https://code.empreintesduweb.com/2757.html

J'espère avoir été suffisamment clair dans mes explications

Cordialement


3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
14 déc. 2012 à 22:49
Ca n'existe pas double main().
Il faut mettre : int main(void). main() retourne un int.
C'est printf("%f", ...) pour afficher un double (pas "%lf").

switch (menudevise())
En faisant ça, tu rappelles ta fonction menudevise().
Il faut plutôt sauvegarder la valeur lors du premier appel.
Donc au début du main() :
int choix;
choix=menudevise(); /*là, où tu as appelé menudevise();*/

et switch(choix) /*plutôt que switch(menudevise())*/

Cdlt,
0
roidusurf Messages postés 77 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 12 juillet 2013 19
15 déc. 2012 à 12:21
Bonjour,
Je vous remercie.

Voici donc mon code :http://code.empreintesduweb.com/2759.html

Mais il y a toujours le même problème en ce qui concerne les menus. Le programme ne plante plus après qu'on est rentré une somme, mais rien ne se passe .
0
roidusurf Messages postés 77 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 12 juillet 2013 19
15 déc. 2012 à 12:28
problème du menu réglé: http://code.empreintesduweb.com/2760.html
Mais toujours le problème de la non exécution des conversions
0
roidusurf Messages postés 77 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 12 juillet 2013 19
15 déc. 2012 à 12:49
D'après le site du zéro ici : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c c'est bien %lf qui permet de récupérer une saisie de type double et %f serait pour un type float
0
roidusurf Messages postés 77 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 12 juillet 2013 19
15 déc. 2012 à 12:57
Non je me suis trompé désolé
0
roidusurf Messages postés 77 Date d'inscription lundi 3 septembre 2012 Statut Membre Dernière intervention 12 juillet 2013 19
15 déc. 2012 à 13:14
j'ai fait un truc je sais pas quoi et maintenant sa fonctionne correctement ^^
voilà donc le code qui marche : http://code.empreintesduweb.com/2761.html
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
15 déc. 2012 à 19:40
scanf("%lfn",&sommeentree);
C'est quoi le %lfn ??? J'imagine que c'est \n, il faut pas en mettre dans le scanf.

Donc là ton code fonctionne bien ?
0
personne n'aime les prototypes ou quoi??
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
18 déc. 2012 à 22:59
précise le fond de ta pensée...
0