Problème dans un script
Résolu/Fermé
lucario200298
Messages postés
56
Date d'inscription
samedi 21 mai 2011
Statut
Membre
Dernière intervention
16 mai 2015
-
Modifié par lucario200298 le 30/06/2011 à 20:42
lucario200298 Messages postés 56 Date d'inscription samedi 21 mai 2011 Statut Membre Dernière intervention 16 mai 2015 - 30 juin 2011 à 20:49
lucario200298 Messages postés 56 Date d'inscription samedi 21 mai 2011 Statut Membre Dernière intervention 16 mai 2015 - 30 juin 2011 à 20:49
A voir également:
- Problème dans un script
- Script vidéo youtube - Guide
- Ghost script - Télécharger - Polices de caractères
- Script bat - Guide
- Microsoft activation script - Accueil - Windows
- Executeur de script - Télécharger - Édition & Programmation
1 réponse
Bonjour,
Le C est un langage tatillon, et les fonctions scanf et printf aussi !
mes remarques :
Ce n'est pas un script mais un programme : un script est directement exécutable, ici, c'est la partie compilée qui sera exécutée.
il faut faire attention aux types des données :
les nombres sont des doubles : ok
Pour le signe, tu n'étais pas obligé de prendre un double, un int ou mieux un char serait mieux.
Au lieu d'un if à rallonge, utilise plutôt switch ... case .. default, c'est plus souple.
Sinon, tu as 2 erreurs (répétées) qui empêche que ça marche:
pour les double, il faut utiliser %lf ou %.2lf avec scanf et printf
Le premier argument de printf, est une chaine de format, il ne doit donc y avoir le format entre guillemets
Voici le programme corrigé :
Le C est un langage tatillon, et les fonctions scanf et printf aussi !
mes remarques :
Ce n'est pas un script mais un programme : un script est directement exécutable, ici, c'est la partie compilée qui sera exécutée.
il faut faire attention aux types des données :
les nombres sont des doubles : ok
Pour le signe, tu n'étais pas obligé de prendre un double, un int ou mieux un char serait mieux.
Au lieu d'un if à rallonge, utilise plutôt switch ... case .. default, c'est plus souple.
Sinon, tu as 2 erreurs (répétées) qui empêche que ça marche:
pour les double, il faut utiliser %lf ou %.2lf avec scanf et printf
Le premier argument de printf, est une chaine de format, il ne doit donc y avoir le format entre guillemets
Voici le programme corrigé :
#include <stdio.h> #include <stdlib.h> int main() { double resultat = 0, nombre1 = 0, nombre2 = 0, signe = 0; printf("Entrez le nombre 1 : "); scanf("%lf", &nombre1); printf("Entrez le nombre 2 : "); scanf("%lf", &nombre2); printf("Entrez le signe (pour le + ecriver 1, - : 2, * : 3, / : 4) : "); // scanf("%d"; &signe); scanf("%lf", &signe); // erreur il faut lf et en plus il y avait un point virgule printf("nb1 %.2lf nb2 %.2lf signe %.2lf\n",nombre1,nombre2,signe); // ici ce serait mieux d'utiliser switch(signe) .. case .. default en mettant signe en char ou int if (signe == 1) { resultat = nombre1 + nombre2; // printf ("%d" + "%d" = "%d\n", nombre1, nombre2, resultat); printf ("%.2lf + %.2lf = %.2lf\n", nombre1, nombre2, resultat); } else if (signe == 2) { resultat = nombre1 - nombre2; printf ("%.2lf - %.2lf = %.2lf\n", nombre1, nombre2, resultat); // meme erreur que pour le + } else if (signe == 3) { resultat = nombre1 * nombre2; printf ("%.2lf * %.2lf = %.2lf\n", nombre1, nombre2, resultat); // meme erreur que pour le + } else if (signe == 4) { resultat = nombre1 / nombre2; printf ("%.2lf / %.2lf = %.2lf\n", nombre1, nombre2, resultat); // meme erreur que pour le + } else { printf ("Oups !!! vous avez commit une erreur"); } return 0; }
30 juin 2011 à 20:26
30 juin 2011 à 20:49