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 Date d'inscription   Statut Membre Dernière intervention   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 921 Date d'inscription   Statut Membre Dernière intervention   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 921 Date d'inscription   Statut Membre Dernière intervention   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