Tom's Guide > Forum > Programmation > besoin d'aide pour un programme simple

besoin d'aide pour un programme simple

Forum Programmation : besoin d'aide pour un programme simple

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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


Message édité par derff06 le 25-03-2008 à 19:55:50
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Salut

Est-ce que je peux savoir à quelle ligne ca plante ? colle le log de compilation

Répondre à quarty

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é ==========

Répondre à derff06

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.

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky

Le probleme venait bien du ";" apres le switch, merci beaucoup pour tes conseils, sa marche niquel :)


Message édité par derff06 le 25-03-2008 à 21:36:35
Répondre à derff06
Tom's Guide > Forum > Programmation > besoin d'aide pour un programme simple
Aller à :

Il y a 356 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens