Problème dans un script
Résolu
lucario200298
Messages postés
56
Date d'inscription
Statut
Membre
Dernière intervention
-
lucario200298 Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
lucario200298 Messages postés 56 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Problème dans un script
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
- Script download - 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; }
lucario200298
Messages postés
56
Date d'inscription
Statut
Membre
Dernière intervention
1
Merci
lucario200298
Messages postés
56
Date d'inscription
Statut
Membre
Dernière intervention
1
Savez vous comment faire pour mettre directement tout le calcul ?