Probleme avec mon programme (switch)

Quentigus -  
fiddy Messages postés 11653 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.
A voir également:

3 réponses

fiddy Messages postés 11653 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
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
fiddy Messages postés 11653 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