Partage
  • Partager sur Facebook
  • Partager sur Twitter

Que se pase-t-il ?

Sujet résolu
18 décembre 2005 à 22:30:34

Bonjour à tous. j'ai voulu allez un peu plus que la calculatrice mais j'ai un problème car quand je veux meler switch et if/else if/else je n'arrive pas à compiler.
Voila mon code :

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

int main(int argc, char *argv[])
{
   long menu= 0;
   printf ("-------------------------------\n");
   printf ("-----------[S.P.M.]------------\n");
   printf ("-Super Programme Multifonction-\n");
   printf ("-------------------------------\n\n");
   printf ("Veuillez choisir ce que le programme va effectuer.\n");
   printf ("pour cela veuillez taper le numero présent à coté de la fonction.\n\n");
   printf ("1. Calcultatrice.\n");
   printf ("2. Jeu");
   scanf ("%ld", &menu);
if ( menu == 1 );
{
        long operation= 0;
        system ("cls");
    printf ("-----------------------------\n");
    printf ("-----Super  Calculatrice-----\n");
    printf ("-----------------------------\n\n");
    printf ("Veuillez choisire l'operation a effectuer.\n\n");
    printf ("1. Addition.\n");
    printf ("2. Soustraction\n");
    printf ("3. Multiplication.\n");
    printf ("4. Division.\n");
    printf ("5. Cosinus.\n\n");
    scanf ("%ld", &operation);
   
switch (operation)
{
 case 1:
      system ("cls");
      printf ("----------------------------- \n");
  printf ("-----Super  Calculatrice-----\n");
  double nombre0= 0;
  double nombre01= 0;
  printf ("-----------------------------\n\n");
  printf ("Vous avez choisis l'addition.\n");
  printf ("Entrer le premier nombre, puis,faite entrer: ");
  scanf ("%lf", &nombre0);
  printf ("Bien votre premier nombre est donc : %lf\n", nombre0);
  printf ("Tapez desormais votre second nombre puis faites entrer: ");
  scanf ("%lf", &nombre01);
  printf ("Votre second nombre est : %lf\n", nombre01);
  double resultat0= nombre0 + nombre01;
  printf ("Le resultat de l'addition est %lf\n", resultat0);
  printf ("\n\n");
  printf ("Vous pouvez desormais quitter.");
  break;
 case 2:
            system ("cls");
      printf ("----------------------------- \n");
  printf ("-----Super  Calculatrice-----\n");
  double nombre2= 0;
  double nombre21= 0;
  printf ("-----------------------------\n\n");
  printf ("Vous avez choisis la soustraction.\n");
  printf ("Entrer le premier nombre, puis,faite entrer: ");
  scanf ("%lf", &nombre2);
  printf ("Bien votre premier nombre est donc : %lf\n", nombre2);
  printf ("Tapez desormais votre second nombre puis faites entrer: ");
  scanf ("%lf", &nombre21);
  printf ("Votre second nombre est : %lf\n", nombre21);
  double resultat2= nombre2 - nombre21;
  printf ("Le resultat de la soustraction est %lf\n", resultat2);
  printf ("\n\n");
  printf ("Vous pouvez desormais quitter.");
  break;
 case 3:
      system ("cls");
      printf ("----------------------------- \n");
  printf ("-----Super  Calculatrice-----\n");
  double nombre3= 0;
  double nombre31= 0;
  printf ("-----------------------------\n\n");
  printf ("Vous avez choisis la multiplication.\n");
  printf ("Entrer le premier nombre, puis,faite entrer: ");
  scanf ("%lf", &nombre3);
  printf ("Bien votre premier nombre est donc : %lf\n", nombre3);
  printf ("Tapez desormais votre second nombre puis faites entrer: ");
  scanf ("%lf", &nombre31);
  printf ("Votre second nombre est : %lf\n", nombre31);
  double resultat3= nombre3 * nombre31;
  printf ("Le resultat de la multiplication est %lf\n", resultat3);
  printf ("\n\n");
  printf ("Vous pouvez desormais quitter.");
  break;
 case 4:
      system ("cls");
      printf ("----------------------------- \n");
  printf ("-----Super  Calculatrice-----\n");
  double nombre4= 0;
  double nombre41= 0;
  printf ("-----------------------------\n\n");
  printf ("Vous avez choisis la division.\n");
  printf ("Entrer le premier nombre, puis,faite entrer: ");
  scanf ("%lf", &nombre4);
  printf ("Bien votre premier nombre est donc : %lf\n", nombre4);
  printf ("Tapez desormais votre second nombre puis faites entrer: ");
  scanf ("%lf", &nombre41);
  printf ("Votre second nombre est : %lf\n", nombre41);
  double resultat4= nombre4 / nombre41;
  printf ("Le resultat de la division est %lf\n", resultat4);
  printf ("\n\n");
  printf ("Vous pouvez desormais quitter.");
      break;
  case 5:
            system ("cls");
      printf ("----------------------------- \n");
  printf ("-----Super  Calculatrice-----\n");
  double resultat5 = 0, nombre5 = 0;
  printf ("-----------------------------\n\n");
  printf ("Vous avez choisis le cosinus.\n");
  printf ("Entrer en degré la valeure de l'angle à calculer: ");
  scanf ("%lf", &nombre5);
  printf ("La valeur que vous avez entré est : %lf \n", nombre5);
  resultat5 = cos(nombre5);
  printf ("Le cosinus de votre angle est egal a :%lf", resultat5);
  printf ("\n\n");
  printf ("Vous pouvez desormais quitter.");
  break;
 default:
      printf ("Désolé vous avez fais une erreur veuillez retaper le chiffre correspondant à l'operation.");
}

}
<couleur nom="rouge">else if ( menu == 2 )</couleur>
{
     system ("cls");
     printf ("--------------\n");
     printf ("----Le Jeu----\n");
     printf ("--------------\n\n");
     printf ("dans ce jeu vous devez donner des chiffres au hasard afin\n");
     printf ("de trouver le chiffre mystere.\n");
     printf ("Eh bien commençons.");
     long chiffreMystere= 0;
while ( chiffreMystere != 63)
{
      printf ("Le chiffre mystere est compris entre 1 et 100.\n");
      scanf ("%ld", &chiffreMystere);
     }
     printf ("Bravo vous avez trouve le chiffre mystère !!!\n");
     printf ("Vous gagnez le droit de fermer le logiciel");
}
else
{
  printf ("ERREUR ! ERREUR ! ERREUR !");
}
  system ("PAUSE");
  return 0;   
}


Et en bas dev c++ me dit :
In functiun `main'
syntax error before "else"
Et il me surligne la ligne que j'ai mis en rouge. Si vous pouviez me dire où j'ai fait une erreur je vous en serait grandement reconaissant. merci d'avance
  • Partager sur Facebook
  • Partager sur Twitter
18 décembre 2005 à 23:27:11

2 erreurs
il manque une accolade avant le ELSE
ton IF est suivi d'un ; , ce qui n'est pas forcement faux, mais dans ton cas, ca genere des erreurs !


et puis sous notepad ++, pour indenter facilement, on selectionne 50 lignes d'un coup, un appui sur TAB et pof, ca fait des chocapics ! (et un code plus clair).


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

int main(int argc, char *argv[])
{
        long menu= 0;
        long operation= 0;
        printf ("-------------------------------\n");
        printf ("-----------[S.P.M.]------------\n");
        printf ("-Super Programme Multifonction-\n");
        printf ("-------------------------------\n\n");
        printf ("Veuillez choisir ce que le programme va effectuer.\n");
        printf ("pour cela veuillez taper le numero présent à coté de la fonction.\n\n");
        printf ("1. Calcultatrice.\n");
        printf ("2. Jeu");
        scanf ("%ld", &menu);
        if ( menu == 1 )
        {
                system ("cls");
                printf ("-----------------------------\n");
                printf ("-----Super  Calculatrice-----\n");
                printf ("-----------------------------\n\n");
                printf ("Veuillez choisire l'operation a effectuer.\n\n");
                printf ("1. Addition.\n");
                printf ("2. Soustraction\n");
                printf ("3. Multiplication.\n");
                printf ("4. Division.\n");
                printf ("5. Cosinus.\n\n");
                scanf ("%ld", &operation);
                switch (operation)
                {
                        case 1:
                                system ("cls");
                                printf ("----------------------------- \n");   
                                printf ("-----Super  Calculatrice-----\n");
                                double nombre0= 0;
                                double nombre01= 0;
                                printf ("-----------------------------\n\n");
                                printf ("Vous avez choisis l'addition.\n");
                                printf ("Entrer le premier nombre, puis,faite entrer: ");
                                scanf ("%lf", &nombre0);
                                printf ("Bien votre premier nombre est donc : %lf\n", nombre0);
                                printf ("Tapez desormais votre second nombre puis faites entrer: ");
                                scanf ("%lf", &nombre01);
                                printf ("Votre second nombre est : %lf\n", nombre01);
                                double resultat0= nombre0 + nombre01;
                                printf ("Le resultat de l'addition est %lf\n", resultat0);
                                printf ("\n\n");
                                printf ("Vous pouvez desormais quitter.");
                                break;
                        case 2:
                                system ("cls");
                                printf ("----------------------------- \n");
                                printf ("-----Super  Calculatrice-----\n");
                                double nombre2= 0;
                                double nombre21= 0;
                                printf ("-----------------------------\n\n");
                                printf ("Vous avez choisis la soustraction.\n");
                                printf ("Entrer le premier nombre, puis,faite entrer: ");
                                scanf ("%lf", &nombre2);
                                printf ("Bien votre premier nombre est donc : %lf\n", nombre2);
                                printf ("Tapez desormais votre second nombre puis faites entrer: ");
                                scanf ("%lf", &nombre21);
                                printf ("Votre second nombre est : %lf\n", nombre21);
                                double resultat2= nombre2 - nombre21;
                                printf ("Le resultat de la soustraction est %lf\n", resultat2);
                                printf ("\n\n");
                                printf ("Vous pouvez desormais quitter.");
                                break;
                        case 3:
                                system ("cls");
                                printf ("----------------------------- \n");
                                printf ("-----Super  Calculatrice-----\n");
                                double nombre3= 0;
                                double nombre31= 0;
                                printf ("-----------------------------\n\n");
                                printf ("Vous avez choisis la multiplication.\n");
                                printf ("Entrer le premier nombre, puis,faite entrer: ");
                                scanf ("%lf", &nombre3);
                                printf ("Bien votre premier nombre est donc : %lf\n", nombre3);
                                printf ("Tapez desormais votre second nombre puis faites entrer: ");
                                scanf ("%lf", &nombre31);
                                printf ("Votre second nombre est : %lf\n", nombre31);
                                double resultat3= nombre3 * nombre31;
                                printf ("Le resultat de la multiplication est %lf\n", resultat3);
                                printf ("\n\n");
                                printf ("Vous pouvez desormais quitter.");
                                break;
                         case 4:
                                system ("cls");
                                printf ("----------------------------- \n");
                                printf ("-----Super  Calculatrice-----\n");
                                double nombre4= 0;
                                double nombre41= 0;
                                printf ("-----------------------------\n\n");
                                printf ("Vous avez choisis la division.\n");
                                printf ("Entrer le premier nombre, puis,faite entrer: ");
                                scanf ("%lf", &nombre4);
                                printf ("Bien votre premier nombre est donc : %lf\n", nombre4);
                                printf ("Tapez desormais votre second nombre puis faites entrer: ");
                                scanf ("%lf", &nombre41);
                                printf ("Votre second nombre est : %lf\n", nombre41);
                                double resultat4= nombre4 / nombre41;
                                printf ("Le resultat de la division est %lf\n", resultat4);
                                printf ("\n\n");
                                printf ("Vous pouvez desormais quitter.");
                                break;
                        case 5:
                                system ("cls");
                                printf ("----------------------------- \n");
                                printf ("-----Super  Calculatrice-----\n");
                                double resultat5 = 0, nombre5 = 0;
                                printf ("-----------------------------\n\n");
                                printf ("Vous avez choisis le cosinus.\n");
                                printf ("Entrer en degré la valeure de l'angle à calculer: ");
                                scanf ("%lf", &nombre5);
                                printf ("La valeur que vous avez entré est : %lf \n", nombre5);
                                resultat5 = cos(nombre5);
                                printf ("Le cosinus de votre angle est egal a :%lf", resultat5);
                                printf ("\n\n");
                                printf ("Vous pouvez desormais quitter.");
                                break;
                        default:
                                printf ("Désolé vous avez fais une erreur veuillez retaper le chiffre correspondant à l'operation.");
                                }
        }
        else if ( menu == 2 )
        {
                system ("cls");
                printf ("--------------\n");
                printf ("----Le Jeu----\n");
                printf ("--------------\n\n");
                printf ("dans ce jeu vous devez donner des chiffres au hasard afin\n");
                printf ("de trouver le chiffre mystere.\n");
                printf ("Eh bien commençons.");
                long chiffreMystere= 0;
                while ( chiffreMystere != 63)
                {
                        printf ("Le chiffre mystere est compris entre 1 et 100.\n");
                        scanf ("%ld", &chiffreMystere);
                }
                        printf ("Bravo vous avez trouve le chiffre mystère !!!\n");
                        printf ("Vous gagnez le droit de fermer le logiciel");
        }
        else
        {
                printf ("ERREUR ! ERREUR ! ERREUR !");
        }
        system ("PAUSE");
        return 0;
}
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2005 à 10:23:30

Merci beaucoup ça a marché !!! :)
Seulement je pensait avoir mis toutes les "{" nécessaire, j'avais du en rater une. Et je peux pas faire de chocapic j'ai pas notepad. Mais je crois avoir vu qu'on pouvait le telecharger sur le site donc je vais chercher. Merci beaucoup ça marche super bien. :)
  • Partager sur Facebook
  • Partager sur Twitter
19 décembre 2005 à 11:17:43

Titre non explicite, et en plus t'as l'air d'être content, ton problème est réglé donc je peux fermer :)
  • Partager sur Facebook
  • Partager sur Twitter