Code en c++

mustang ouss -  
 mustang ouss -
Bonjour,
g ce code qui normalement doit m'afficher n=7 il m'affiche juste la première valeur de n
svp dites moi ce je dois faire
ps il y a trop de if j'arrive pas à le faire avec switch
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
float heuristique(double c1,double c2,double h,double b,double r)
{
double z[20],g[20];
float G;
z[1]=99999999;
int i,n;
cout<<"z[i]:";
for (i=1;i<=r;i++)
{
z[i+1]=sqrt(3-(2/z[i]));

cout<<z[i]<<setprecision (4)<<" ";
}
g[1]=1;
cout<<endl<<endl;
cout<<"g[i]:";
cout<<g[1]<<" ";
for (i=2;i<=r;i++)
{
g[i]=g[i-1]*z[i];
cout<<g[i]<<setprecision (4)<<" ";
}
cout<<endl;
G=(c1/(pow(h,3)*b*c2));
cout<<"la valeur de G est:"<<G<<setprecision (4)<<endl;

if (G = 0.192)
{
n=1;
cout<<n;
}
else if (G = 0.053)
{
n=2;
cout<<n;
}
else if (G = 0.024)
{
n=3;
cout<<n;
}
else if (G = 0.014)
{
n=4;
cout<<n;
}
else if (G = 0.009)
{
n=5;
cout<<n;
}
else if (G = 0.006)
{
n=6;
cout<<n;
}
else if (G = 0.005)
{
n=7;
cout<<n;
}
else if (G = 0.004)
{
n=8;
cout<<n;
}
else if (G = 0.003)
{
n=9;
cout<<n;
}
system("pause");

}
int main ()
{
double r,c1,c2,h,b;
cout<<"donnez la taille:"<<endl;
cin>>r;
cout<<"donnez c1,c2,h,b:"<<endl;
cin>>c1>>c2>>h>>b;
heuristique(c1,c2,h,b,r);

}




A voir également:

1 réponse

Utilisateur anonyme
 
Bonjour

Tu dois faire tes comparaisons avec ==, pas avec =

if (G==xxx)...
0
mustang ouss
 
merci bcp mais il ne m'affiche pas la valeur de n lors de l'exécution!!!
0
Utilisateur anonyme
 
== fait une comparaison d'égalité stricte
Or toi tu compares G avec des nombres à 3 décimales alors que la valeur réelle de G en a certainement beaucoup plus. Donc aucune des égalités n'est respectée.
Il faut que tu testes que ta valeur est comprise dans une fourchette que tu jugeras acceptable, par exemple :
if ((G > 0.191)  && (G < 0.193)) ...

Mais il faudrait surtout revoir le principe même.
D'ailleurs, que cherches-tu vraiment à faire, j'ai l'impression que tu avais dès le départ besoin de if (G > 0.192) en fait.
0
mustang ouss
 
merci bcp
0