[C++]Programme de moyenne très compliqué

gabsens Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -  
gabsens Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
c'est la première fois que j'écris un programme en c++ aussi compliqué et justement, la fin avec les if est totalement foireuse, si quelqu'un pouvait me rectifier , ça serait sympa,
merci

#include <iostream>

using namespace std;

int main()
{
double a;
double b;
double c;
double d;
double e;
double f;
double g;
double i;
double j;
double h;
double k;
double l;
double m;
double n;
double o;
double moyenne;
char input2[50];
char input3[50];
char pseudo[50];
cout << "Ce programme pantagru\x82liste calule VOS moyennes ,cher magnoludovicien²²²²²²²²By Gabsens²²²²²²\n";
cout << "Quel est votre pseudo ?\n" ;
cin >> pseudo;
cout << "Salut " << pseudo <<endl;
cout << "Entrez vos moyennes de :\n";
cout <<"Francais:";
cin >> a;

cout<< "\nMath\x82matiques:";
cin >> b;

cout << "Histoire-G\x82ographie:";
cin >> c;

cout << "Physique-Chimie:",
cin >> d;

cout << "Passons donc aux SVT:";
cin >> g;

cout << "Faites vous allemand ??? R\x82pondez par oui ou non, ok?";


char input[20];
char correct [] = "oui";
cin >> input;
if (strcmp(input, correct) == 0)
{
cout << " d'accord, vous pouvez rentrer votre moyenne:";
cin >> e;
}
else
{
cout << "Pfff, dommage ; on continue?\n";
cout << "Entrez donc votre moyenne d'espagnol:";
cin >> f;
}

cout <<"Hum...EPS???:";
cin >> h;

cout << "Oh, j'allais oublier le latin...\ Mais fais-tu latin ??";
cin >> input2;
char correct2 [] = "oui";
if (strcmp(input2, correct2) == 0)
{
cout << " Mon enfant, beati pauperes spiritu:";
cin >> i;
}
else

{
cout << "Pfff, pas grave, mais tu fais surement Grec??\n";
cin >> j;
}
cout<< " Tadmam, c'est presque fini, il est donc de l'ISI.\n Tu en fais ??";
cin >>input3;
char correct3 [] = "oui";
if (strcmp(input3, correct3) == 0)
{
cout << " Bien :";
cin >> k;
cout << "\nPassons à la moyenne:";
}
else

{
cout << "Peu importe, passons à la moyenne:\n";

}
if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 0))
{
moyenne = (a+b+c+d+g+e+k+i)/8;
cout << "Moyenne =" << moyenne;

if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 1))
{
moyenne = (a+b+c+d+g+e+i)/7;
cout << "Moyenne =" << moyenne;

if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 0))
{
moyenne = (a+b+c+d+g+e+j+k)/8;
cout << "Moyenne =" << moyenne;

if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 1))
{
moyenne = (a+b+c+d+g+e+j)/7;
cout << "Moyenne =" << moyenne;
if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 0))
{
moyenne = (a+b+c+d+g+f+k+i)/8;
cout << "Moyenne =" << moyenne;
if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 0))
{
moyenne = (a+b+c+d+g+f+k+j)/8;
cout << pseudo<<"votre moyenne est: " << moyenne;
}
}
}
}
}
}




system ("Pause");
}
A voir également:

3 réponses

watou Messages postés 199 Date d'inscription   Statut Membre Dernière intervention   28
 
quelques remarques :
1.il fallait faire des if non imbriqués.
2.tu as oublié deux cas.
3.tu peux optimiser ton programme.

#include <iostream> 

using namespace std; 

int main() 
{ 
double a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,moyenne; 
char input2[50]; 
char input3[50]; 
char pseudo[50]; 

cout << "Ce programme calcule VOS moyennes \n"; 
cout << "Quel est votre pseudo ?\n" ; 
cin >> pseudo; 
cout << "Salut " << pseudo <<endl; 
cout << "Entrez vos moyennes de :\n"; 
cout <<"Francais:"; 
cin >> a; 

cout<< "\nMath\x82matiques:"; 
cin >> b; 

cout << "Histoire-G\x82ographie:"; 
cin >> c; 

cout << "Physique-Chimie:", 
cin >> d; 

cout << "Passons donc aux SVT:"; 
cin >> g; 

cout << "Faites vous allemand ??? R\x82pondez par oui ou non, ok?"; 


char input[20]; 
char correct [] = "oui"; 
cin >> input; 
if (strcmp(input, correct) == 0) 
{ 
   cout << " d'accord, vous pouvez rentrer votre moyenne:"; 
   cin >> e; 
} 
else 
{ 
   cout << "Pfff, dommage ; on continue?\n"; 
   cout << "Entrez donc votre moyenne d'espagnol:"; 
   cin >> f; 
} 

cout <<"Hum...EPS???:"; 
cin >> h; 

cout << "Oh, j'allais oublier le latin...\ Mais fais-tu latin ??"; 
cin >> input2; 
char correct2 [] = "oui"; 
if (strcmp(input2, correct2) == 0) 
{ 
   cout << " Mon enfant, beati pauperes spiritu:"; 
   cin >> i; 
} 
else 
{ 
   cout << "Pfff, pas grave, mais tu fais surement Grec??\n"; 
   cin >> j; 
} 
cout<< " Tadmam, c'est presque fini, il est donc de l'ISI.\n Tu en fais ??"; 
cin >>input3; 
char correct3 [] = "oui"; 
if (strcmp(input3, correct3) == 0) 
{ 
   cout << " Bien :"; 
   cin >> k; 
   cout << "\nPassons à la moyenne:"; 
} 
else 
{ 
   cout << "Peu importe, passons à la moyenne:\n"; 
} 
if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 0)) 
{ 
moyenne = (a+b+c+d+g+e+k+i)/8; 
cout << "Moyenne =" << moyenne; 
}

if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 1)) 
{ 
moyenne = (a+b+c+d+g+e+i)/7; 
cout << "Moyenne =" << moyenne; 
}

if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 0)) 
{ 
moyenne = (a+b+c+d+g+e+j+k)/8; 
cout << "Moyenne =" << moyenne; 
}

if ((strcmp(input, correct)) == 0 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 1)) 
{ 
moyenne = (a+b+c+d+g+e+j)/7; 
cout << "Moyenne =" << moyenne; 
}

if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 0)) 
{ 
moyenne = (a+b+c+d+g+f+k+i)/8; 
cout << "Moyenne =" << moyenne; 
}

if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 0)) 
{ 
moyenne = (a+b+c+d+g+f+k+j)/8; 
cout << pseudo<<"votre moyenne est: " << moyenne; 
}

// tu as oublié ces cas !!!!!!!!!!!!!!!!!!!!!

if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 0)&& (strcmp(input3, correct3) == 1)) 
{ 
cout << "tu as oubli\x82 ce cas "; 
}

if ((strcmp(input, correct)) == 1 && ( strcmp(input2, correct2) == 1)&& (strcmp(input3, correct3) == 1)) 
{ 
cout << "tu as oubli\x82 ce cas "; 
} 

system ("Pause"); 
}
0
loupius
 
Pourquoi faire simple lorsqu'on peut faire compliqué !!! ;-)
Si 'ai bien compris (sauf le 'h' dont je ne sais ce que tu en fais), le problème est le suivant:
Le nombre de notes est 7 ou 8 et dans tous les cas et il y a 5 notes obligatoires: a, b, c, d, g.
(1 ligne ) total = a + b + c + d + g et nbreNotes = 7
(4 lignes) si 'input1' = 'oui' alors total = total + e sinon total = total + f
(4 lignes) si 'input2' = 'oui' alors total = total + i sinon total = total + j
(2 lignes) si 'input3' = 'oui' alors total = total + k et nbreNotes = 8
(1 ligne ) moyenne = total / nbreNotes
Soit seulement environ 12 lignes.
On peut encore simplifier:
(1 ligne ) total = a + b + c + d + g + f + j et nbreNotes = 7
(2 lignes) si 'input1' = 'oui' alors total = total + e - f
(2 lignes) si 'input2' = 'oui' alors total = total + i - j
(2 lignes) si 'input3' = 'oui' alors total = total + k et nbreNotes = 8
(1 ligne ) moyenne = total / nbreNotes
Soit seulement environ 10 lignes.
Bonne continuation.
0
gabsens Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci beaucoup grâce à votre aide j'ai appris beaucoup
0