Ordenar 3 números de menor a mayor en C++

Publicado por Mao
hace 5 años

<pre class="prettyprint prettyprinted"><span class="com">#include</span><span class="pln"> </span><span class="str"><iostream></span><br /><span class="com">#include</span><span class="pln"> </span><span class="str"><math.h></span><br /><span class="kwd">using</span><span class="pln"> </span><span class="kwd">namespace</span><span class="pln"> std</span><span class="pun">;</span><span class="pln"> </span><br /><span class="pln">     </span><span class="kwd">int</span><span class="pln"> main</span><span class="pun">(){</span><br /><span class="pln">       </span><span class="kwd">int</span><span class="pln"> numero1</span><span class="pun">;</span><br /><span class="pln">       </span><span class="kwd">int</span><span class="pln"> numero2</span><span class="pun">;</span><br /><span class="pln">       </span><span class="kwd">int</span><span class="pln"> numero3</span><span class="pun">;</span><span class="pln"> </span><br /><span class="pln">        </span><span class="pun">{</span><span class="pln">              </span><span class="com">//en este caso que iria antes del bloque?</span><br /><span class="pln">     cout</span><span class="pun"><<</span><span class="str">"hola mundo, este es mi segundo programa."</span><span class="pun"><<</span><span class="pln">endl</span><span class="pun">;</span><br /><span class="pln">     cout</span><span class="pun"><<</span><span class="str">"Ahora ingresa tres numero enteros positivos, vamos a ordenarlo de mayor a menor!!"</span><span class="pun"><<</span><span class="pln">endl</span><span class="pun">;</span><br /><span class="pln">     cin</span><span class="pun">>></span><span class="pln">numero1</span><span class="pun">;</span><br /><span class="pln">     cin</span><span class="pun">>></span><span class="pln">numero2</span><span class="pun">;</span><br /><span class="pln">     cin</span><span class="pun">>></span><span class="pln">numero3</span><span class="pun">;</span><br /><span class="pln">   </span><br /><span class="pln">       </span><span class="kwd">int</span><span class="pln"> calculo1</span><span class="pun">();</span><span class="pln">  </span><br /><span class="pln">       </span><br /><span class="pln">       </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero2</span><span class="pun">></span><span class="pln">numero3</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><br /><span class="pln">      cout</span><span class="pun"><<</span><span class="str">"el numero mayor es el numero2"</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> endl</span><span class="pun">;</span><br /><span class="pln">  </span><span class="pun">};</span><br /><span class="pln">      </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero3</span><span class="pun">></span><span class="pln">numero2</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><br /><span class="pln">    </span><br /><span class="pln">          cout</span><span class="pun"><<</span><span class="str">"el numero mayor es el numero 3"</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> endl</span><span class="pun">;</span><br /><span class="pln">  </span><span class="pun">}</span><br /><span class="pun">}</span><br /><span class="pln">      </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero3</span><span class="pun">></span><span class="pln">numero1</span><span class="pun">);</span><br /><span class="pln">      cout</span><span class="pun"><<</span><span class="str">"El segundo numero mayor es el numero3"</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> endl</span><span class="pun">;</span><br /><span class="pln">      </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero1</span><span class="pun">></span><span class="pln">numero3</span><span class="pun">);</span><br /><span class="pln">      cout</span><span class="pun"><<</span><span class="str">"el segundo numero mayor es el numero1"</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> endl</span><span class="pun">;</span><br /><span class="pln"> </span><br /><span class="pln">    </span><span class="kwd">int</span><span class="pln"> calculo2</span><span class="pun">();</span><span class="pln"> </span><br /><span class="pln">    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero2</span><span class="pun"><</span><span class="pln">numero1</span><span class="pun">);</span><br /><span class="pln">    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero1</span><span class="pun">></span><span class="pln">numero3</span><span class="pun">);</span><br /><span class="pln">    cout</span><span class="pun"><<</span><span class="str">"el numero mayor es el numero1"</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> endl</span><span class="pun">;</span><br /><span class="pln">    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero2</span><span class="pun">></span><span class="pln">numero3</span><span class="pun">);</span><br /><span class="pln">    cout</span><span class="pun"><<</span><span class="str">"El segundo numero mayor es el numero2"</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> endl</span><span class="pun">;</span><br /><span class="pln">    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero3</span><span class="pun">></span><span class="pln">numero2</span><span class="pun">);</span><br /><span class="pln">    cout</span><span class="pun"><<</span><span class="str">"el segundo numero mayor es el numero3"</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> endl</span><span class="pun">;</span><br /><span class="pln"> </span><br /><span class="pln">  </span><br /><span class="pln">  </span><br /><span class="pln">  </span><span class="kwd">int</span><span class="pln"> calculo3</span><span class="pun">();</span><br /><span class="pln">   </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero1</span><span class="pun"><</span><span class="pln">numero3</span><span class="pun">);</span><span class="pln"> </span><span class="com">//que sentencia </span><br /><span class="pln">   </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero3</span><span class="pun">></span><span class="pln">numero2</span><span class="pun">);</span><br /><span class="pln">   cout</span><span class="pun"><<</span><span class="str">"el numero mayor es el numero3"</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> endl</span><span class="pun">;</span><br /><span class="pln">   </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero2</span><span class="pun">></span><span class="pln">numero3</span><span class="pun">);</span><br /><span class="pln">   cout</span><span class="pun"><<</span><span class="str">"El segundo numero mayor es el numero2"</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> endl</span><span class="pun">;</span><br /><span class="pln">   </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">numero3</span><span class="pun">></span><span class="pln">numero2</span><span class="pun">);</span><br /><span class="pln">   cout</span><span class="pun"><<</span><span class="str">"el segundo numero mayor es el numero3"</span><span class="pln"> </span><span class="pun"><<</span><span class="pln"> endl</span><span class="pun">;</span><br /><span class="pln"> </span><br /><span class="pln">  </span><span class="kwd">return</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><br /><span class="pln">  </span><span class="pun">}</span><br /><span class="pun">}</span></pre><br /><p><br /></p>

Respuesta de Elias Peraza
hace 5 años

<pre>#include <iostream><br />#include <math.h><br />/ Cabe destacar que es sin implementar arreglos(Arrays). <br />Lo intentaste hacer a travez de funciones, modularizando el codigo, pero será algo confuso para ti, creo. De todas formas si quieres luego actualizo mi respuesta y lo hago con una funcion /<br />using namespace std;<br />int main(){<br />   int n1, n2, n3;//Ahorra lineas de codigo para  que luego te sea mas facil ubicar las cosas. Declara esto en una sola linea así.<br />   int mayor, medio, menor;<br />   cout<<"hola mundo, este es mi segundo programa."<<endl;<br />   cout<<"Ahora ingresa tres numero enteros positivos, vamos a ordenarlo de mayor a menor!!"<<endl;<br />            cin>>n1;<br />            cin>>n2;<br />            cin>>n3;<br />//Sin usar arreglos, es bastante ladilla, voy a separar las comparaciones para que entiendas mejor<br />       //Así comprobamos cual es el mayor<br />       if (n1>n2&&n1>n2) <br />         <span>mayor = n1;<br /></span>      else if(n2 > n1 && n2 > n3)<br />         mayor = n2;<br />      else if(n3 > n1 && n3 > n2)<br />         mayor = n3;<br /><span>//Comprobamos el medio<br /></span>   if((n1 < n2 && n1 > n3) || (n1 > n2 && n1 < n3))medio = n1;<br />  else if((n2 < n1 && n2 > n3) || (n2 > n1 && n2 < n3))medio = n2;<br />else if((n3 < n1 && n3 > n2)||(n3 > n1 && n3 < n2))medio = n3;<br />//Comprobamos el menor<br />if(n1<n2&&n1<n3)menor = n1;<br />else if(n2<n1 && n2 < n3)menor = n2;<br />else if(n3<n1 && n3 < n2)menor = n3;<br />//Se imprime las variables que contienen el resultado de las comparaciones<br />   <span> </span><span>cout<<"el segundo numero mayor es el mayor" << mayor<< endl;<br /></span><span>    </span><span>cout<<"El segundo numero mayor es el medio" <<medio<< endl;<br /></span><span>    cout<<"El numero menor es "<<menor<< endl;<br /></span><span>//fin del programa<br /></span>return 0;<br />}<br /><br /><br />// Errores en tu codigo:<br />#include <iostream><br />#include <math.h>//Estas incluyendo una libreria que no usas<br />using namespace std; <br />   <br />  int main(){<br />       int numero1;<br />       int numero2;<br />       int numero3; <br />        {              //en este caso que iria antes del bloque? //Nada, porque este bloque no abre nada, este bloque es un error aqui<br />     cout<<"hola mundo, este es mi segundo programa."<<endl;<br />     cout<<"Ahora ingresa tres numero enteros positivos, vamos a ordenarlo de mayor a menor!!"<<endl;<br />     cin>>numero1;<br />     cin>>numero2;<br />     cin>>numero3;<br />   <br />       int calculo1();  //Esto es DECLARAR una funcion, y no se declara aqui, se declara arriba de la DEFINICION de main(). Al principio, donde esta namespace std mas o menos<br />       <br />       if (numero2>numero3) {//Estas comparaciones estan erradas, porque debes hacer una DOBLE comparacion como minima en todos los casos, en el <br />//caso del numero medio, debes hacer mas de 2 comparaciones<br />Imaginá que el numero2 sea 15 y numero3 sea 12 pero numero1 sea 5000, cual es mayor? Esto imprimiria que numero2 es el mayor<br />      cout<<"el numero mayor es el numero2" << endl;<br />  };//Al finalizar un bloque if, no va punto y coma, en las funciones tampoco, eso es solo en las structs y en los arrays <br />      else (numero3>numero2) {<br />    <br />          cout<<"el numero mayor es el numero 3" << endl;<br />  }<br />}<br />      if (numero3>numero1);<br />      cout<<"El segundo numero mayor es el numero3" << endl;<br />      if (numero1>numero3);<br />      cout<<"el segundo numero mayor es el numero1" << endl;<br /> <br />    int calculo2(); <br />    if (numero2<numero1);<br />    if (numero1>numero3);<br />    cout<<"el numero mayor es el numero1" << endl;<br />    if (numero2>numero3);<br />    cout<<"El segundo numero mayor es el numero2" << endl;<br />    if (numero3>numero2);<br />    cout<<"el segundo numero mayor es el numero3" << endl;<br /> <br />  <br />  <br />  int calculo3();//Otra vez herrando, aqui no se declaran funciones, <br />aparte, creo que no intentaste declarar una funcion sino definirla. Al definir una funcion no se usa";", solo se abren y cierran llaves, aparte esto se hace fuera<br />de la funcion main o cualquier otra, no dentro<br />   if (numero1<numero3); //que sentencia <br />   if (numero3>numero2);<br />   cout<<"el numero mayor es el numero3" << endl;<br />   if (numero2>numero3);<br />   cout<<"El segundo numero mayor es el numero2" << endl;<br />   if (numero3>numero2);<br />   cout<<"el segundo numero mayor es el numero3" << endl;<br /> <br />  return 0;<br />  }<br />}<br />*/</pre>

Respuesta de Cristian Olaz
hace 5 años

Tenés varios errores. La mayoría ya te los marcaron en la primera respuesta.<div>A mi parecer tu código es muy extenso, para que lo entiendas un poco mejor te muestro <span style="font-weight:bold;">otra forma</span> de hacerlo, con menos líneas de código y un poco más claro:</div><div><pre>#include <iostream><br />using namespace std;<br />/*<br />  Intercambia el valor entre dos variables<br /> */<br />void intercambiar( int &a, int &b ) {<br /><span class="Apple-tab-span"> </span>int aux = a;<br /><span class="Apple-tab-span"> </span>a = b;<br /><span class="Apple-tab-span"> </span>b = aux;<br />}<br />int main() {<br /><span class="Apple-tab-span"> </span>// se ingresan las variables<br /><span class="Apple-tab-span"> </span>int a, b, c;<br /><span class="Apple-tab-span"> </span>cin >> a;<br /><span class="Apple-tab-span"> </span>cin >> b;<br /><span class="Apple-tab-span"> </span>cin >> c;<br /><span class="Apple-tab-span"> </span>// se ordenan de mayor a menor<br /><span class="Apple-tab-span"> </span>if( a > b ) intercambiar( a, b );<br /><span class="Apple-tab-span"> </span>if( a > c ) intercambiar( a, c );<br /><span class="Apple-tab-span"> </span>if( b > c ) intercambiar( b, c );<br /><span class="Apple-tab-span"> </span>cout << "El mayor es: " << c << endl;<br /><span class="Apple-tab-span"> </span>cout << "El medio es: " << b << endl;<br /><span class="Apple-tab-span"> </span>cout << "El menor es: " << a << endl;<br /><span class="Apple-tab-span"> </span>return 0;<br />}</pre><div>Saludos.</div></div>