Ver Mensaje Individual
  #30 (permalink)  
Antiguo 19/06/2014, 04:08
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Atascado con ejercicio.

Una cosilla....has de incluir también el 48 y el 57.
Entonces puedes hacer así:
Código C++:
Ver original
  1. if(numero[i]>=48 && numero[i]<=57)
o así:
Código C++:
Ver original
  1. if(numero[i]>47 && numero[i]<58)

Por otro lado, pienso que es mejor evaluar primero si es false, y luego tratar la cadena si son todos los caracteres numéricos.

Entonces puedes hacer así (buscar la condición contraria):
Código C++:
Ver original
  1. if(!(numero[i]>=48 && numero[i]<=57))
o su equivalente:
Código C++:
Ver original
  1. if(!(numero[i]>47 && numero[i]<58))

O plantear la cuestión en si los números están fuera del rango
Sería ver si el número es menor de 48 O mayor de 57 ( su equivalente con menor-igual y mayor-igual)

Resumiendo:
La cadena es true si:
Código C++:
Ver original
  1. numero[i]>47 && numero[i]<58//seran validos desde el 48 hasta el 57 inclusive
o
Código C++:
Ver original
  1. numero[i]>=48 && numero[i]<=57//seran validos desde el 48 hasta el 57 inclusive

y false si
Código C++:
Ver original
  1. numero[i]<48 || numero[i]>57//seran NO validos desde el 0 hasta el 47 y desde el 58 hasta el final
ó
Código C++:
Ver original
  1. numero[i]<=47 || numero[i]>=58//seran NO validos desde el 0 hasta el 47 y desde el 58 hasta el final
(esta forma es la que tiene menos sentido)

Es importante saber usar los operadores AND y OR en los intervalos que quieras considerar, y no olvidarse de los límites de esos intervalos.

Y por último, esto es equivalente a esto:

Código C++:
Ver original
  1. !(numero[i]>47 && numero[i]<58)
Código C++:
Ver original
  1. numero[i]<48 || numero[i]>57

Considera la condición en la forma que te sea más cómoda, pero empieza evaluando si es false, no si es true.
Saludos!

Última edición por dehm; 19/06/2014 a las 04:16