[C++]Programme de moyenne très compliqué
gabsens
Messages postés
45
Statut
Membre
-
gabsens Messages postés 45 Statut Membre -
gabsens Messages postés 45 Statut Membre -
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");
}
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");
}
Configuration: Windows XP Opera 9.80
3 réponses
-
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"); } -
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. -