Votre question

besoin d'aide pour un programme simple

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
25 Mars 2008 19:51:11

bonjour, depuis maintenant quelque semaine je m'interesse a la programmation, bien sur je suis tres tres tres inexperimenté et je voulai crée une calculette simple (meme tres simple) pour m'entrainer mais celle ci contient beaucoup d'erreurs !
si vous pouviez me dire les erreurs que j'ai faite (sans mot trop compliquer ^^) et un code assez simple je vous en serait tres reconnaissant :) 
language en C evidemment :pt1cable: 

voila mon code actuelle (probablement blindé de faute) =




#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
long choix_operations;
long resultat = 0, nombre1 = 0, nombre2 = 0;

printf("1. additions\n");
printf("2. soustractions\n");
printf("3. multiplications\n");
printf("4. divisions\n");
printf("Votre choix\n");
scanf("%ld", &choix_operations);

printf("\n\n");


switch (choix_operations);
{
case 1: printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 + nombre2 ;
printf ("%ld + %ld = %ld\n", nombre1, nombre2, resultat);
break;

case 2: printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 - nombre2 ;
printf ("%ld - %ld = %ld\n", nombre1, nombre2, resultat);
break;

case 3: printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 * nombre2 ;
printf ("%ld * %ld = %ld\n", nombre1, nombre2, resultat);
break;

case 4: printf("Entrez le nombre 1 : ");
scanf("%ld", &nombre1);
printf("Entrez le nombre 2 : ");
scanf("%ld", &nombre2);
resultat = nombre1 / nombre2 ;
printf ("%ld / %ld = %ld\n", nombre1, nombre2, resultat);
break;

default:
printf("Vous n'avez pas rentre un nombre correct !");
break;
}

system("PAUSE");
return 0;
}



voila merci a tous ceux qui prendront la peine de lire et de m'aider

Autres pages sur : besoin aide programme simple

25 Mars 2008 20:15:07

Salut

Est-ce que je peux savoir à quelle ligne ca plante ? colle le log de compilation
25 Mars 2008 20:21:34

sa plante bcp XD


1>------ Début de la génération : Projet : calculatrice, Configuration : Debug Win32 ------
1>Compilation en cours...
1>main.c
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(14) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : voir la déclaration de 'scanf'
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(21) : error C2046: instruction case non conforme
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(27) : error C2043: instruction break non conforme
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(29) : error C2046: instruction case non conforme
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(35) : error C2043: instruction break non conforme
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(37) : error C2046: instruction case non conforme
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(43) : error C2043: instruction break non conforme
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(45) : error C2046: instruction case non conforme
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(51) : error C2043: instruction break non conforme
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(53) : error C2047: instruction default non conforme
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(55) : error C2043: instruction break non conforme
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\utilisateur\Documents\Visual Studio 2008\Projects\calculatrice\calculatrice\Debug\BuildLog.htm"
1>calculatrice - 10 erreur(s), 1 avertissement(s)
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
Contenus similaires
a b L Programmation
25 Mars 2008 21:18:58

Citation :
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(14) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

ça c'est un warning de Microsoft qui veut s'opposer aux fonctions standard, il veut que tu utilises scanf_s au lieu de scanf. C'est juste un warning, tu peux garder ton scanf.

Citation :
1>c:\users\utilisateur\documents\visual studio 2008\projects\calculatrice\calculatrice\main.c(21) : error C2046: instruction case non conforme

Après ton switch, tu as mis un ';', il ne faut pas, après un switch, il faut directement '{'. En fait, ici le compilateur (très bête) lit le switch avec un ';' donc il considère que c'est la fin du switch. En C tu peux mettre des blocs de code { ... } n'importe où, et c'est ce que comprend le compilateur. Ensuite il voit des case et des break, et comme l'ancien switch était terminé, le compilateur (toujours aussi bête) pense (vraiment ? :)  ) que tu n'es pas dans un switch, et il n'y a pas de raison d'utiliser case et break en dehors d'un switch, d'où l'erreur.
25 Mars 2008 21:29:39

Le probleme venait bien du ";" apres le switch, merci beaucoup pour tes conseils, sa marche niquel :) 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS