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

4 réponses

aloush
 
Merci pour votre aide :)
0
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
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
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