<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000">
<DIV>Hola que tal <IMG class="wlEmoticon wlEmoticon-smile" 
style="BORDER-TOP-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none; BORDER-RIGHT-STYLE: none" 
alt=Sonrisa src="cid:A3F4EAAD58B542E389E5C4256E94BED5@MasterPC"></DIV>
<DIV> </DIV>
<DIV>Steven, este es el código que he empleado ahora, y parece funcionar 
correctamente por fin, que bien. ¿está bien hecho la definición de menor y el 
include a cfloat?</DIV>
<DIV>También he observado que el programa parecía hacer cosas diferentes al 
hacer if – else if que con if – if (que es ahora como lo he dejado), también he 
notado que al poner primero el if a menor y luego el de mayor todo ha funcionado 
a la perfección.</DIV>
<DIV> </DIV>
<DIV>Muchas gracias Steven por la luz sobre este tema, saludos a todos.</DIV>
<DIV> </DIV>
<DIV><FONT size=2 face="Courier New">#include 
"std_lib_facilities.h"</FONT></DIV>
<DIV><FONT size=2 face="Courier New">#include <cfloat></FONT></DIV>
<DIV><FONT size=2 face="Courier New"></FONT> </DIV>
<DIV><FONT size=2 face="Courier New">int main()</FONT></DIV>
<DIV><FONT size=2 face="Courier New">{</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    double uno, mayor, 
menor, suma, metros;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    string que;</FONT></DIV>
<DIV><FONT size=2 face="Courier New"></FONT> </DIV>
<DIV><FONT size=2 face="Courier New">    int 
cantidad;</FONT></DIV>
<DIV><FONT size=2 face="Courier New"></FONT> </DIV>
<DIV><FONT size=2 face="Courier New">    cantidad = 
0;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    suma = 0;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    mayor = 0;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    menor = 
DBL_MAX;</FONT></DIV>
<DIV><FONT size=2 face="Courier New"></FONT> </DIV>
<DIV><FONT size=2 face="Courier New">    
while(cin>>uno>>que)</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    if(que == 
"cm")</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    {</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
metros = uno / 100;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
que = "m";</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
cout << metros << que << endl;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
cantidad++;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
suma += metros;</FONT></DIV>
<DIV><FONT size=2 
face="Courier New">                
</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
if(uno < menor)</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
{</FONT></DIV>
<DIV><FONT size=2 
face="Courier New">            
menor = uno;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
}</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
if(uno > mayor)</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
{</FONT></DIV>
<DIV><FONT size=2 
face="Courier New">            
mayor = uno;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
}</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    }    
</FONT></DIV>
<DIV><FONT size=2 face="Courier New"></FONT> </DIV>
<DIV><FONT size=2 face="Courier New">    else if(que != 
"cm")</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    {</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
cout << "no se reconoce medida" << endl;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    }</FONT></DIV>
<DIV><FONT size=2 face="Courier New"></FONT> </DIV>
<DIV><FONT size=2 face="Courier New">        
cout << "Mayor: " << mayor << "m" << endl;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
cout << "Menor: " << menor << "m" << endl;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
cout << "Cantidad: " << cantidad << endl;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">        
cout << "Suma: " << suma << "m" << endl;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    </FONT></DIV>
<DIV><FONT size=2 face="Courier New">    
keep_window_open();</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    
keep_window_open();</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    return 0;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">}</FONT></DIV>
<DIV><FONT size=2 face="Courier New"></FONT> </DIV>
<DIV>PD: Omar, no sabía que se podía hacer la comparación como tu la 
haces.</DIV>
<DIV 
style="FONT-SIZE: small; FONT-FAMILY: 'Calibri'; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; TEXT-DECORATION: none; DISPLAY: inline">
<DIV style="FONT: 10pt tahoma">
<DIV><FONT size=3 face=Calibri></FONT> </DIV>
<DIV><FONT size=3 face=Calibri>Un saludo.</FONT></DIV>
<DIV><FONT size=3 face=Calibri></FONT> </DIV>
<DIV style="BACKGROUND: #f5f5f5">
<DIV style="font-color: black"><B>From:</B> <A title=omar.p9@gmail.com 
href="mailto:omar.p9@gmail.com">omar mendoza</A> </DIV>
<DIV><B>Sent:</B> Saturday, January 12, 2013 2:48 PM</DIV>
<DIV><B>To:</B> <A title=cconclase@listas.conclase.net 
href="mailto:cconclase@listas.conclase.net">Lista de correo sobre C y C++</A> 
</DIV>
<DIV><B>Subject:</B> Re: [C con Clase]Número mayor y menor en bucle 
While</DIV></DIV></DIV>
<DIV> </DIV></DIV>
<DIV 
style="FONT-SIZE: small; FONT-FAMILY: 'Calibri'; FONT-WEIGHT: normal; COLOR: #000000; FONT-STYLE: normal; TEXT-DECORATION: none; DISPLAY: inline">Hola, 
con respecto a la comparación de la string 
<DIV> </DIV>
<DIV>Qué es mejor?</DIV>
<DIV> </DIV>
<DIV>if (que == "cm") </DIV>
<DIV>    algo</DIV>
<DIV> </DIV>
<DIV>o</DIV>
<DIV> </DIV>
<DIV>if (que.compare("cm") == 0) </DIV>
<DIV>     algo</DIV>
<DIV> </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> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>
<DIV> </DIV>
<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="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
  <DIV dir=ltr>Hola Óscar, 
  <DIV class=gmail_extra>
  <DIV> </DIV>
  <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="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
    <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> </DIV>
  <DIV> </DIV>
  <DIV>Veamos el código fuente.</DIV>
  <DIV class=im>
  <DIV> </DIV>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
    <DIV dir=ltr>
    <DIV dir=ltr>
    <DIV style="FONT-SIZE: 12pt; FONT-FAMILY: calibri">
    <DIV><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Courier New'">#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> </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> </DIV>
  <DIV>menor = DBL_MAX;</DIV>
  <DIV> </DIV>
  <DIV>esta constante se #define en <cfloat>.</DIV>
  <DIV class=im>
  <DIV> </DIV>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
    <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> </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> </DIV>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">
    <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> </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> </DIV>
  <DIV>1, 5, 10, 9</DIV>
  <DIV> </DIV>
  <DIV>Al procesar 10, tendremos:<BR><BR>uno <-- 10</DIV>
  <DIV>mayor <-- 10</DIV>
  <DIV>menor <-- 0</DIV>
  <DIV> </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> </DIV>
  <DIV>Obviamente, 9 no es el menor de todos los números de la lista.</DIV>
  <DIV> </DIV>
  <DIV> </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> </DIV>
  <DIV>// Caso particular: iteración #1</DIV>
  <DIV>mayor = menor = suma = uno;</DIV>
  <DIV> </DIV>
  <DIV>
  <DIV>// Caso general: iteración #2 al #n</DIV>
  <DIV>while( ... )<BR>{<BR>  ...</DIV>
  <DIV>}</DIV></DIV>
  <DIV> </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> </DIV>
  <DIV> </DIV>
  <DIV>Espero que esto te ayude.</DIV><SPAN class=HOEnZb><FONT color=#888888>
  <DIV> </DIV>
  <DIV>Steven</DIV>
  <DIV> </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> </DIV>-- <BR>
<DIV>Omar Jonathan Mendoza Bernal</DIV>"Las cicatrices nos recuerdan que el 
pasado fue real" Dr. Lecter en Dragón Rojo </DIV>
<P>
<HR>
_______________________________________________<BR>Lista de correo Cconclase 
Cconclase@listas.conclase.net<BR>http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net<BR>Bajas: 
http://listas.conclase.net/index.php?gid=2&mnu=FAQ</DIV></DIV></DIV></BODY></HTML>