Besoin d'aide en c++

aloush -  
 aloush -
Bonjour,
J'ai besoin un peut d'aide dans le programme ci-dessous:
La compagnie MÉTÉO-VOTRE NOM désire émettre des statistiques sur la température de plusieurs périodes de temps.

Faire le programme qui permet de
Étape 1: afficher un écran de bienvenue
Étape 2: lire à l'écran la température de chaque jour de la période, un jour à la fois
(valeur sentinelle -99)
Étape 3 : afficher les statistiques suivantes :
- le nombre de jours de la période
- le nombre de jours très froids (où la température a été inférieure à –15 degrés)
- le nombre de jours où il a gelé (où la température n'a pas dépassé 0 degrés)
- le nombre de jours chauds (où la température a atteint ou dépassé 20 degrés)
- la température moyenne de la période
- la température la plus chaude et la plus froide de la période
Étape 4 : demander si on désire recommencer pour une autre période et lire la réponse
- si on désire recommencer, revenir à l'étape sinon poursuivre à l'étape 5
Étape 5 : afficher un écran d'au revoir
======================
voila mon programme:

#include <iostream>

using namespace std;

int main()
{
float n;
int count=0;
int countc=0;
int countf=0;
int countg=0;

//ETAPE 1 ==================================================================

//MESSAGE DE BIENVENUE:

cout<<" BIENVENU A METEO -"<<endl;
cout<<endl;
cout<<"Nous allons emettre des statistiques "<<endl;
cout<<"sur diverses periodes de temps"<<endl;

//FIN ETAPE 1 || DEBUT ETAPE 2 ================================================

do {
cout<<"Entrez la temperature du jour :";
cin>>n;
count++;
cout<<endl;
}
while(n!=-99);

//ETAPE 3:

cout<<"STATISTIQUES - periode de "<<(count-1)<<" jours: "<<endl<<endl;

if (n>=20)
{countc++;
cout<<" On a atteint les 20.0 degrés pendant "<<countc<<" jour(s). "<<endl;
}
else if (n=0)
{
countg++;
cout<<" Il a gele pendant "<<countg<<" jour(s). "<<endl;
}

else if (n<-15.0)
{countf++;
cout<<countf<<" jour(s) ont ete tres froide. "<<endl;
}
else
cout<<" ERREUR"<<endl;

//ETAPE 5 ==================================================================
cout<<endl;
cout<<"LA COMPAGNIE METEO - VOUS SOUHAITE BONNE JOURNEE"<<endl;
cout<<endl;
//FIN ETAPE 5 ==================================================================

system("pause");
}
//FIN

====================
merci
Configuration: Windows Vista
Firefox 3.0.3

4 réponses

  1. jerome_64 Messages postés 14 Statut Membre 1
     
    Comme tu n'utilises pas de tableau, tu dois faire les tests dans la boucle de saisie des valeurs de températures,
    donc dans ton do...while:

    //MESSAGE DE BIENVENUE:

    cout<<" BIENVENU A METEO -"<<endl;
    cout<<endl;
    cout<<"Nous allons emettre des statistiques "<<endl;
    cout<<"sur diverses periodes de temps"<<endl;

    //FIN ETAPE 1 || DEBUT ETAPE 2 ================================================

    do {
    cout<<"Entrez la temperature du jour :";
    cin>>n;
    count++;
    if (n>=20)countc++;
    else if (n==0)countg++;
    else if (n<-15)countf++;
    cout<<endl;
    }
    while(n!=-99);

    //ETAPE 3:

    cout<<"STATISTIQUES - periode de "<<(count-1)<<" jours: "<<endl<<endl;

    cout<<" On a atteint les 20.0 degrés pendant "<<countc<<" jour(s). "<<endl;

    cout<<" Il a gele pendant "<<countg<<" jour(s). "<<endl;

    cout<<countf<<" jour(s) ont ete tres froide. "<<endl;
    -1
  2. cchristian Messages postés 928 Statut Membre 131
     
    Bonsoir,

    J'ai fait quelques tests, il serait bien que tu en fasses toi aussi, j'ai pù oublier des cas de figure.

    #include <iostream> 
    
    using namespace std; 
    
    // test61.cpp
    
    int main() 
    { 
           int    count      = 0; 
           int    countc     = 0; 
           int    countf     = 0; 
           int    countg     = 0; 
           int    rep_stop   = 0; 
    signed int    plus_chaud = -1; 
    signed int    plus_froid = 1; 
    signed int    n          = 0; 
    signed int    jours           [365];
           float  cum_temp   = 0;
    //ETAPE 1 ================================================================== 
    
    //INITIALISATION ET MESSAGE DE BIENVENUE: 
    do {
        system      ("cls");
        count      = 0; 
        countc     = 0; 
        countf     = 0; 
        countg     = 0; 
        rep_stop   = 0; 
        n          = 0; 
        cum_temp   = 0;
        plus_chaud = -1;
        plus_froid = 1;
    	for (int I = 0;  I < 365;   I++)  {jours [I] = 0;}
    	
    	cout << "\n\n BIENVENU A METEO -"<<endl; 
        cout << "Nous allons emettre des statistiques "<<endl; 
        cout << "sur diverses periodes de temps"<<endl; 
    
    //FIN ETAPE 1 || DEBUT ETAPE 2 ================================================ 
    
         do { 
           cout << "\n Entrez la temperature du "<<count + 1<<"em. jour :"; 
           cin  >> n; 
           if ( n > 90 ) { cout << " \n Valeur eronee : "<<n<<" non prise n compte.";}
           else {
                   jours [count]    =  n;
                   count++;  
                  }
            }   while  ( n != -99 ); 
    
    // Pour TESTS :
    //for (int i = 0; jours [i] != -99; i++ ) {cout <<"\n jour [i] = "
    //<<jours [i]<<"  i = "<<i;}
    
    //ETAPE 3: 
    
         cout << "\n\n STATISTIQUES - periode de "<<(count-1)
    		  <<" jours: "<<endl; 
         for ( int  i   = 0;   jours [i] != -99;   i++ ) 
            {
             cum_temp   = cum_temp        +     jours [i];
    		 if    ( jours [i] >  plus_chaud) { plus_chaud  =  jours [i];}
    		 if    ( jours [i] <  plus_froid) { plus_froid  =  jours [i];}
             if    ( jours [i] >= 20 )        { countc++; } 
             else 
                if ( jours [i] <= 0  )        { countg++; } 
                if ( jours [i] < -15 )        { countf++; } 
            }
    
         cout << "\n    On a atteint ou dépassé les 20.0 degrés pendant "
    		  <<countc<<" jour(s). "<<endl; 
         cout << "\n    Il a gele pendant "<<countg<<" jour(s). "<<endl; 
         cout << "\n   "<<countf<<" jour(s) ont ete tres froide. "<<endl; 
    
         if ( jours [0] != -99 )              { 
            cout << "\n    La moyenne des temperatures est : "
    	         <<cum_temp / float ((count - 1))<<endl; 
            cout << "\n    La temperature la plus chaude est : "<<plus_chaud;
            cout << "\n    La temperature la plus froide est : "<<plus_froid; }
         do 
           {
            cout << "\n\n VOULEZ-VOUS POURSUIVRE LE TRAITEMENT STATISTIQUE "
    		        "0=Oui 1=Non ?"<<endl;
            cin  >> rep_stop ;
           }   while ( rep_stop != 0 && rep_stop != 1 );
    
    } while ( rep_stop == 0);
    
    //ETAPE 5 ================================================================== 
    cout<<"\n\n LA COMPAGNIE METEO - VOUS SOUHAITE BONNE JOURNEE"<<endl; 
    //FIN ETAPE 5 ================================================================== 
    } 
    //FIN 
    -1
  3. cchristian Messages postés 928 Statut Membre 131
     
    RECTIFICATIF :

    signed int    plus_chaud = -11111; 
    signed int    plus_froid = 11111; 
    double        n          = 0; 
    au lieu de :
    signed int    plus_chaud = -1; 
    signed int    plus_froid = 1; 
    signed int    n          = 0; 
    et
        plus_chaud = -11111;
        plus_froid = 11111;
    au lieu de :
        plus_chaud = -1;
        plus_froid = 1;
    Ceci afn de palier à une absence de saisie d'une température positive ou négative pour une même période. Ce qui aurait eu pour efffet d'afficher à tord la valeur d'initialisation -1 dans le cas d'absence de tempérture positive (plus_chaud) et 1 dans le cas d'absence de tempérture négative (plus_froid) pour une même période.

      if ( n > 90 || n < -99) { cout << " \n Valeur eronee : "
                                                          <<n<<" non prise n compte.";}
    a lieu de :
     if ( n > 90 ) { cout << " \n Valeur eronee : "<<n<<" non prise n compte.";}
    Afin d'intégrer le contrôle de saisie de températures négatives incohérentes (< -99).
    -1