Probleme avec mon programme (switch)

Quentigus -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
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. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  2. Quentigus
     
    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
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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