Ver Mensaje Individual
  #10 (permalink)  
Antiguo 19/11/2014, 15:42
Avatar de leosansan
leosansan
 
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años, 7 meses
Puntos: 49
Respuesta: do while false

Cita:
Iniciado por kutcher Ver Mensaje
Concuerdo totalmente con Madh dejo otra opción con la condición de do while diferente:
Pues yo no concuerdo con ninguno de los dos. Para empezar se puede producir un bucle infinito si no entran un número y, lo más importante, no consideran el caso de un número negativo, es decir que el primer caracter sea un menos. Por no mencionar que aún aunque se introduzca un número correcto sale el mensajito de "Repetir si no soy un numero". Además el número no tiene porque limitarse a una cifra.

Una opción chapucera sería:

Código C++:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main ( ) {
  4.   int i , numero , flag = 0 , flag1 = 0 ;
  5.   char num [20];
  6.   do {
  7.     flag = 0 , flag1 = 0 ;
  8.     printf ( "\nIntroduzca un numero entero: " ) ;
  9.     scanf ( "%s" , num ) ;
  10.     for ( i = 0 ; num [ i ] ; i++ ) {
  11.       if ( num [0] == '-' && flag1 == 0 )
  12.         flag1 = 1 ;
  13.       else if ( num [i] < '0' || num [i] > '9')
  14.         flag = 1 ;
  15.     }
  16.   }while ( flag != 0 ) ;
  17.   printf ( "\nnumero = %d\n" , atoi ( num ) ) ;
  18.   return 0 ;
  19. }

¡¡¡Saluditos!!!