[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");
}
A voir également:
- [C++]Programme de moyenne très compliqué
- Excel moyenne - Guide
- Programme demarrage windows - Guide
- Programme word gratuit - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
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.
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.
On peut encore simplifier:
Bonne continuation.
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 / nbreNotesSoit 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 / nbreNotesSoit seulement environ 10 lignes.
Bonne continuation.