Juste un tt petit problème en c++

Résolu/Fermé
oliver - 17 janv. 2013 à 21:14
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 - 19 janv. 2013 à 12:40
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 vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
18 janv. 2013 à 10:08
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
merciii heliotte oui ca marche bien merciiiiiiiiii de nv
0
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
18 janv. 2013 à 20:15
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
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 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
19 janv. 2013 à 12:40
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