<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 style>Veamos el código fuente.</div><div style><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 style>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 style><br></div><div style>menor = DBL_MAX;</div><div style><br></div><div style>esta constante se #define en <cfloat>.</div><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 style>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><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 style>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 style><br></div><div style>1, 5, 10, 9</div><div style><br></div><div style>Al procesar 10, tendremos:<br><br>uno <-- 10</div><div style>mayor <-- 10</div><div style>menor <-- 0</div><div style><br></div><div style>
Cuando pasemos a recoger el valor de 9, obtendremos esto:<br><br></div><div style><div>uno <-- 9</div><div>mayor <-- 10</div><div>menor <-- 9</div><div><br></div><div style>Obviamente, 9 no es el menor de todos los números de la lista.</div>
<div style><br></div><div style><br></div><div style>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 style><br></div><div style>// Caso particular: iteración #1</div><div style>mayor = menor = suma = uno;</div><div style><br></div><div style><div>// Caso general: iteración #2 al #n</div><div style>while( ... )<br>{<br>
  ...</div><div style>}</div></div><div style><br></div><div style>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 style><br></div><div style><br></div><div style>Espero que esto te ayude.</div><div style><br></div><div style>Steven</div><div style><br></div></div></div></div></div>