C++

Fermé
Adil le vrais - 11 juil. 2004 à 22:52
 mohamed - 22 juil. 2004 à 19:20
Salut les pro. comme sava ?svp pour l'alternative imbriquée
:s'il vous plait j'ai besoin un d' un programme ou la
première accolade ne se ferme pas après
le premier [else],toute suite, fait comme cette syntaxe s'il vous plait:
if (condition1)
{ (*1begin*)
if (condition2)
séquence1;
else {
if (condition3)
séquence2
else
séquence3;
}
} (*//end//pgmme complique*)
else
séquence4;

j'ai cette exemple abordable mais pas compliqué
#include<iostream.h>
void main ()
int a,b,c;
cout<<"a =";
cin>>a;
cout<<"b = " ;
cin>>b;
cout<<"c = ";
cin>>c;
if (a>b)
{
if (a>c)
cout <<"le plus grand des trois nombres :"<<a;
else
cout<<"le plus grand des trois nombres est :"<<c;
}
else
{
if (b>c)
cout <<" le plus grand des trois nombres est :"<<b ;
else
cout <<" le plus grand des trois nombres est :"<<c;
}
}

4 réponses

Canard007 Messages postés 5929 Date d'inscription mercredi 26 mai 2004 Statut Contributeur Dernière intervention 18 septembre 2009 215
12 juil. 2004 à 09:39
j ai rien compris a ta question mais sinon deja dans ton code il manque une acolade
t'as mis
void main () 
int a,b,c; 

il faut mettre
void main () 
{
int a,b,c; 
0
salut, tout comme Canard007 je ne comprends pas ta question.
Je ne sais pas si ton exemple sur les trois nombres est un exemple au pif pour qu'on comprenne qqch ou bien si c'est ton prgm mais pour faire moins le ligne de code je te propose la chose suivante :

int max(int a,int b) { (a>b) ? return a : return b}

int main()
{
int a,b,c;
std::cout<<"le max est "<<max(max(a,b),c)<<std::endl;

return 0;
}
0
plutot que

int max(int a,int b) { (a>b) ? return a : return b}

utilises plutot

int max(int a,int b)
{
return (a>b) ? a : b;
}
0
Adil le vrais
12 juil. 2004 à 20:32
Salut,merci,tu m'a pas compris c'est pas comme une equation du second degree en deux partie,mais c'est seulement pour arriver a distinguer le chemin des instruction compliquer\\ begin et end

Je veut svp un pgmme correspondont a cette syntaxe:

if (condition1)
{ (*1begin*)
if (condition2)
séquence1;
else {
if (condition3)
séquence2
else
séquence3;
}
} (*//end//pgmme complique*)
else
séquence4;
0
ok, je comprends mieux ton prgm alors.
Je vois que dans tes if(condition) sequence il n'y a pas d'accolades. Cela veut donc dire que le compilo ne va prendre en compte que la 1e instruction dans le "alors". Si tu veux mettre plusieurs instructions, il faut mettre une accolade

int main()
{
int toto, mimile, v1, compteur,a

if(toto==1) // condition 1
{
if((mimile>2) && (v1<=3)) // condition 2
{ // ici tu as 2 instructions d'ou les accolades
for(int i=0;i<5;i++,compteur++);
a=7;
}
else // sinon conditon 2
{
if((v1 != 3) || (v1 >7) ) // condition 3
a=9; // ici tu n'as qu'une seule séquence 2 donc pas beoin d'accolades
else a=8; // sinon condition 3
} // fin sinon condition 2
} // fin condition 1
else // sinon conditiion 1
{
v1=8;
mimile=7;
} // fin sinon condition 1

return 0;
}

si tu as bcp de si alors sinon, regarde les mots clés switch et case

j'espère ne pas avoir fait de faute sur les accolades.

Salut
Pom
0