Programación General > C/C++
Validar Un Valor Decimal
(1/1)
infonet:
ENCUAENTRAN ALGUN ERROR EN ESTE CODIGO....
NO ME CORRE OK...
--- Código: C++ --- # include <stdio.h># include <conio.h># include <string.h># include <stdlib.h>char cadena[100];int estado=0;int i=0;main (){ printf("INGRESE UN VALOR DECIMAL :"); gets(cadena); for (i=0;((i<strlen(cadena))&&(estado!=3));i++) { if (estado==0) { if ((cadena[i]>=48)&&(cadena[i]<=57)) estado=1; if (cadena[i]=='.') estado=2; else estado=4; } else if (estado==1) { if ((cadena[i] >=48)&&(cadena[i]<=57)) estado=1; if (cadena[i]=='.') estado=2; else estado=5; } else if (estado==2) { if ((cadena[i] >=48)&&(cadena[i]<=57)) estado=3; else estado=6; } else if (estado==3) { if ((cadena[i] >=48)&&(cadena[i]<=57)) estado=3; else estado=7; } } if (estado==1) printf("EL NUMERO ES DECIMAL"); { if (estado==2) printf("EL NUMERO CONTIENE PUNTO"); { if (estado==3) printf("EL NUMERO DECIMAL ES CORRECTO"); { if (estado==4) printf("ERROR: DEBE EMPEZAR CON NUMERO O PUNTO"); { if (estado==5) printf("ERROR: SOLO SE ACEPTAN NUMEROS"); { if (estado==6) printf("DEBE INGRESAR PUNTO DECIMAL"); { if (estado==7) printf("SOLO SE HACEPTAN NUMEROS"); } } } } } getch(); }}
infonet:
SOLUCIONADO......
--- Código: C++ --- # include <stdio.h># include <conio.h># include <string.h># include <stdlib.h>char cadena[100];int estado=0;int i=0; main () { printf("INGRESE UN VALOR DECIMAL :"); gets(cadena); for (i=0;((i<strlen(cadena))&&(estado!=3));i++) { if (estado==0) { if ((cadena[i]>=48)&&(cadena[i]<=57)) estado=1; else if (cadena[i]=='.') estado=2; else estado=4; } else //else1 { if (estado==1) { if ((cadena[i] >=48)&&(cadena[i]<=57)) estado=1; else if (cadena[i]=='.') estado=2; else estado=5; } else //else2 { if (estado==2) { if ((cadena[i] >=48)&&(cadena[i]<=57)) estado=3; else estado=6; } else //else3 { if (estado==3) { if ((cadena[i] >=48)&&(cadena[i]<=57)) estado=3; else estado=7; } }//else3 }//else2 }//else1 }// for if (estado==1) printf("EL NUMERO ES DECIMAL"); if (estado==2) printf("EL NUMERO CONTIENE PUNTO"); if (estado==3) printf("EL NUMERO DECIMAL ES CORRECTO"); if (estado==4) printf("ERROR: DEBE EMPEZAR CON NUMERO O PUNTO"); if (estado==5) printf("ERROR: SOLO SE ACEPTAN NUMEROS"); if (estado==6) printf("DEBE INGRESAR PUNTO DECIMAL"); if (estado==7) printf("SOLO SE HACEPTAN NUMEROS"); getch();}
Dynyck:
Una duda... Será que solo quieres validar como dice el título... entonces yo ocuparía directamente una entrada tipo float y luego la compararía con la parte entera, algo así:
--- Código: C++ --- float num;std::cin>>num;if(num!=(int)num){std::cout<<"El numero contiene punto y es decimal"<<std::endl;}
Disculpas si me he equivocado.
infonet:
a ver probraremos con el float....
Muchas Gracias estimado....
Dynyck:
Fijate porque la verdad no me acuerdo si era (int) var o int (var), es simplemente comparar la parte entera con el número.
Navegación
Ir a la versión completa