Probleme avec mon programme (switch)

Bonjour,
alors voilà j'ai fait ce programme mais je ne comprend pas, quand je dois saisir le nombre d'accident, il se ferme.
voici mon programme :

#include <iostream>
#include <stdlib.h>
using namespace std;

int age,accident,permis,q;

int main()
{
cout << "quel age a le client ?\n";
cin >> age;
if (age < 25)
{
cout << "depuis combien de temps est-il proprietaire du permis de conduire ?\n";
cin >> permis;
if (permis < 2)
{
cout << "de combien d'accident le client est responsable ?\n";
scanf("%d",&accident);
switch (accident)
{
case 0 : cout << "client accepte avec tarif ''rouge''\n";break;
system("pause");
default : cout << "client refuse\n";break;
system("pause");
}
}
else
{
cout << "de combien d'accident le client est responsable ?\n";
scanf("%d",&accident);
switch (accident)
{
case 0 : cout << "client accepte avec tarif ''orange''\n";break;
system("pause");
case 1 : cout << "client accepte avec tarif ''rouge''\n";break;
system("pause");
default : cout << "client refuse\n";break;
system("pause");
}
}
}
else
{
cout <<"depuis combien de temps est-il proprietaire du permis de conduire ?\n";
cin >> permis;
if (permis < 2)
{
cout << "de combien d'accident le client est responsable ?\n";
scanf("%d",&accident);
switch (accident)
{
case 0 : cout << "client accepte avec tarif ''orange''\n";break;
system("pause");
case 1 : cout << "client accepte avec tarif ''rouge''\n";break;
system("pause");
default : cout << "client refuse\n";break;
system("pause");
}
}
else
{
cout << "de combien d'accident le client est responsable ?\n";
scanf("%d",&accident);
switch (accident)
{
case 0 : cout << "client accepte avec tarif ''vert''\n";break;
system("pause");
case 1 : cout << "client accepte avec tarif ''orange''\n";break;
system("pause");
case 2 : cout << "client accepte avec tarif ''rouge''\n";break;
system("pause");
default : cout << "client refuse\n";break;
system("pause");
}
}
}
}

J'ai essaie avec des "if" et sa marche, mais j'aimerais bien savoir pourquoi sa ne marche pas avec "switch".
merci d'avance.
Configuration: Windows Vista
Firefox 3.0.1

3 réponses

  1. Contributeur
    Salut,
    Peux-tu reposter ton programme en utilisant l'option "conserver l'indentation" (à droite de souligner), car ton code est illisible. De plus, tu fais un mélange de C et de C++, ce qui n'est pas conseillé. Soit tout en C soit tout en C++. En gros, n'utilise pas de cout et cin si tu utilises du printf ou du scanf.
    Cdt
    0
    1. tien je te le renvoi corrigé (plus de scanf).
      #include <iostream>
      #include <stdlib.h>
      using namespace std;
      
      int age,accident,permis,q;
      
      int main()
      {
          system("cls");
          cout << "quel age a le client ?\n";
          cin >> age;
          if (age < 25)
          {
                  cout << "depuis combien de temps est-il proprietaire du permis de conduire ?\n";
                  cin >> permis;
                  if (permis < 2)
                  {
                             cout << "de combien d'accident le client est responsable ?\n";
                             cin >> accident;
                             switch (accident)
                             {
                                    case 0 : cout << "client accepte avec tarif ''rouge''\n";break;
                                    default : cout << "client refuse\n";break;
                             }
                  }
                  else
                  {
                             cout << "de combien d'accident le client est responsable ?\n";
                             cin >> accident;
                             switch (accident)
                             {
                                    case 0 : cout << "client accepte avec tarif ''orange''\n";break;
                                    case 1 : cout << "client accepte avec tarif ''rouge''\n";break;
                                    default : cout << "client refuse\n";break;
                             }
                  }
          }
          else
          {
                  cout <<"depuis combien de temps est-il proprietaire du permis de conduire ?\n";
                  cin >> permis;
                  if (permis < 2)
                  {
                             cout << "de combien d'accident le client est responsable ?\n";
                             cin >> accident;
                             switch (accident)
                             {
                                    case 0 : cout << "client accepte avec tarif ''orange''\n";break;
                                    case 1 : cout << "client accepte avec tarif ''rouge''\n";break;
                                    default : cout << "client refuse\n";break;
                             }
                  }
                  else
                  {
                             cout << "de combien d'accident le client est responsable ?\n";
                             cin >> accident;
                             switch (accident)
                             {
                                    case 0 : cout << "client accepte avec tarif ''vert''\n";break;
                                    case 1 : cout << "client accepte avec tarif ''orange''\n";break;
                                    case 2 : cout << "client accepte avec tarif ''rouge''\n";break;
                                    default : cout << "client refuse\n";break;
                                    }
                  }
          }
          system("pause");
      }
      0
      1. Contributeur
        Merci.
        Donc si je comprends bien, ton programme se ferme après avoir entré le nombre d'accidents ? Si c'est le cas c'est normal, c'est la dernière instruction de ta boucle If/Else.
        0