Juste un tt petit problème en c++

Résolu
oliver -  
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

en fait j'ai essayer de résoudre ce problème la et j'ai arriver mais le programme quand il arrive au résultat il sort pas de boucle il commence la boucle 2 eme fois je cherche juste comment sortir de boucle mercii a vous et voila le code "( ah le programme demande de calculer la moyenne d'une série de n nombre entrer par utilisateur .la valeur n est fournie par l'utilisateur c a dire n représente le nombre des entrer par exemple n=3 alors on va ajouter nombre et le programme nous donne la moyenne
nb , je sais que y a moyenne de résoudre le problème avec d'autre facon mais j'aimerais bien savoir si un jours je tomber dans le même pro je serai capable de me sortir lol






"int main(){
int a,k=0,x;
double moy=0,som=0;
cout<<" entrer le nombre de serie ";
cin>> a;
while(a>0){
cout<<"entrer le numero ";
cin>> x;
som=som+x;
k++;

if(k==a){
moy=som/a;
cout<<" la moyenne de cette serie est: "<< moy;
}

}

}


2 réponses

Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
Bonjour oliver,

Je ne suis pas un spécialiste du C++, mais tu peux essayer ceci:

Après le cout<<" la moyenne de cette serie est: "<< moy;
tu peux écrire a=-1;
0
oliver
 
merciii heliotte oui ca marche bien merciiiiiiiiii de nv
0
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
C'est normal, ta variable "a" n'est jamais corrigée dans la boucle. Ainsi, si tu es rentré dans la boucle (a > 0), comme a n'est jamais modifié, ce critère sera toujours vrai.

Vu que "k" semble mémoriser le nombre de valeurs saisies, il suffit de boucler tant que "k" n'a pas atteint la valeur "a".

De plus le calcul de la moyenne doit être déclenché dès que toutes les valeurs ont été saisies (donc quand la boucle prend fin). Il n'y a donc rien à tester, dès qu'on sort de la boucle, on sait que toutes les valeurs ont été saisies, et on peut lancer le calcul.

Ainsi le programme ressemblerait plus à :

#include <iostream>

int main() {
    using namespace std;
    int a, k = 0, x;
    double moy = 0, som = 0;

    cout << "Entrer le nombre de valeurs: ";
    cin >> a;

    while (k < a) {
        cout << "Entrer une valeur: ";
        cin >> x;
        som = som + x;
        k++; 
    } 

    moy = som / a; 
    cout << "La moyenne arithmétique est: " << moy << endl;
    return 0;
} 


Personnellement j'aurais plutôt écrit :

#include <iostream>

int main() {
    using namespace std;
    unsigned num_values;
    double   mean, x;

    cout << "Entrer le nombre de valeurs: ";
    cin >> num_values;

    for (unsigned i = 0; i < num_values; i++) {
        cout << "Entrer une valeur: ";
        cin >> x;
        mean += x;    
    } 

    mean /= num_values;
    cout << "La moyenne arithmétique est: " << mean << endl;
    return 0;
}


Bonne chance
0
oliver
 
merciiiiiiiiiiiiiiiii mamiemando c tres gentil de votre part oui c juste lol je suis nouveau dans la programmation et plus tot sur c++ débutant si tu as ou bien t'a des lien des cours qui explique bien les séquences et les plateaux car j'ai pas bien compris c truc et merci infiniment pour ta réponse
0
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Qu'est ce que tu appelles des séquences et des plateaux ?

Un tutoriel pour apprendre le C (nécessaire pour apprendre le C++) :
https://openclassrooms.com/fr/courses

... et le C++ (tout ce qu'apporte le C++ en plus du C) :
https://openclassrooms.com/fr/courses?categories=informatique&tags=c-1

Bonne chance
0