Hola, con respecto a la comparación de la string<div><br></div><div>Qué es mejor?</div><div><br></div><div>if (que == "cm") </div><div>    algo</div><div><br></div><div>o</div><div><br></div><div>if (que.compare("cm") == 0) </div>

<div>     algo</div><div><br></div><div>Yo uso la segunda, de hecho no sabía que se podía hacer de la manera que lo hace Oscar</div><div>Saludos</div><div><br></div><div><br></div><div><br></div><div><br><div class="gmail_quote">

El 11 de enero de 2013 20:12, Davidson, Steven <span dir="ltr"><<a href="mailto:srd4121@njit.edu" target="_blank">srd4121@njit.edu</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr">Hola Óscar,<div class="gmail_extra"><br><div class="gmail_quote">2013/1/11 Oscar Aparicio Holgado <span dir="ltr"><<a href="mailto:enigma-si@hotmail.com" target="_blank">enigma-si@hotmail.com</a>></span><br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">
<div dir="ltr">
<div style="font-size:12pt;font-family:Calibri">
<div>Hola que tal.</div>
<div></div></div></div></div></blockquote><div><br></div><div><br></div><div>Veamos el código fuente.</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div dir="ltr"><div dir="ltr"><div style="font-size:12pt;font-family:Calibri"><div><span style="font-family:'Courier New';font-size:12pt">#include "std_lib_facilities.h"</span></div>
<div><font face="Courier New"></font> </div>
<div><font face="Courier New">int main()</font></div>
<div><font face="Courier New">{</font></div>
<div><font face="Courier New">    double uno, mayor, menor, suma, 
metros;</font></div>
<div><font face="Courier New">    string que;</font></div>
<div><font face="Courier New"></font> </div>
<div><font face="Courier New">    int cantidad;</font></div>
<div><font face="Courier New"></font> </div>
<div><font face="Courier New">    cantidad = 0;</font></div>
<div><font face="Courier New">    suma = 0;</font></div>
<div><font face="Courier New">    mayor = 0;</font></div>
<div><font face="Courier New">    menor = 0;</font></div>
<div><font face="Courier New"></font> </div></div></div></div></blockquote><div><br></div></div><div>El valor inicial de 'menor' puede traer problemas para el funcionamiento del algoritmo. Deberías elegir un valor inicial que obligue al algoritmo a asignar un valor válido para 'menor' en la primera iteración. Podrías elegir un número muy elevado, como por ejemplo,</div>


<div><br></div><div>menor = DBL_MAX;</div><div><br></div><div>esta constante se #define en <cfloat>.</div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div dir="ltr"><div dir="ltr"><div style="font-size:12pt;font-family:Calibri">
<div><font face="Courier New">    
while(cin>>uno>>que)</font></div>
<div><font face="Courier New">        
</font></div>
<div><font face="Courier New">    if(que == "cm")</font></div>
<div><font face="Courier New">    {</font></div>
<div><font face="Courier New">        metros 
= uno / 100;</font></div>
<div><font face="Courier New">        que = 
"m";</font></div>
<div><font face="Courier New">        cout 
<< metros << que << endl;</font></div>
<div><font face="Courier New">        
cantidad = cantidad + 1;</font></div>
<div><font face="Courier New">        suma = 
suma + metros;</font></div>
<div><font face="Courier New">               </font></div></div></div></div></blockquote><div><br></div></div><div>Deberías acostumbrarte a usar los operadores de incremento y de incremento y asignación:<br><br><div>cantidad++;</div>


<div>suma += metros;</div></div><div class="im"><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div dir="ltr">
<div dir="ltr"><div style="font-size:12pt;font-family:Calibri"><div><font face="Courier New"> 
</font></div>
<div><font face="Courier New">        //menor 
= uno</font></div>
<div><font face="Courier New"></font> </div>
<div><font face="Courier New">        if(uno 
> mayor)</font></div>
<div><font face="Courier New">        
{</font></div>
<div><font face="Courier New">            
mayor = uno;</font></div>
<div><font face="Courier New">        
}</font></div>
<div><font face="Courier New">        else 
if(uno >= 0 || uno < menor)</font></div></div></div></div></blockquote><div><br></div></div><div>Esto no va a funcionar como esperas. Básicamente, cada vez que un número no sea el mayor, pero no sea negativo, se convierte en el menor. Esto no es lógico. Por ejemplo,</div>


<div><br></div><div>1, 5, 10, 9</div><div><br></div><div>Al procesar 10, tendremos:<br><br>uno <-- 10</div><div>mayor <-- 10</div><div>menor <-- 0</div><div><br></div><div>
Cuando pasemos a recoger el valor de 9, obtendremos esto:<br><br></div><div><div>uno <-- 9</div><div>mayor <-- 10</div><div>menor <-- 9</div><div><br></div><div>Obviamente, 9 no es el menor de todos los números de la lista.</div>


<div><br></div><div><br></div><div>Aparte de la solución dada previamente - usando 'DBL_MAX' - sugiero dar valores iniciales a 'mayor' y a 'menor' que sean válidos. Esto significa que estas variables deben guardar valores que pertenezcan a la lista introducida. Para ello, realiza una primera lectura específica para dar valores iniciales a 'mayor' y a 'menor', al igual que para 'suma'. Esto es,</div>


<div><br></div><div>// Caso particular: iteración #1</div><div>mayor = menor = suma = uno;</div><div><br></div><div><div>// Caso general: iteración #2 al #n</div><div>while( ... )<br>{<br>
  ...</div><div>}</div></div><div><br></div><div>De esta forma, no hay que dar valores iniciales que no sean válidos, y además no malgastamos la primera iteración sumando 0 (cero) a 'suma'.</div>
<div><br></div><div><br></div><div>Espero que esto te ayude.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Steven</div><div><br></div></font></span></div></div></div></div>
<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Omar Jonathan Mendoza Bernal</div>

"Las cicatrices nos recuerdan que el pasado fue real" Dr. Lecter en Dragón Rojo 
</div>