English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Todas las categorías

Estoy haciendo un programa en c, pero necesito que si la variables es "int" meter solo numeros y no letras, y si meto una letra que me diga que no puedo hacerlo, que necesito meter un numero. a ver si me explique

2006-10-06 10:29:23 · 7 respuestas · pregunta de sergio m 2 en Ordenadores e Internet Programación y Diseño

miren mi programa evalua una funcion matematica, pero al pedir el valor de la variable si le pongo una letra el programa se vuelve loco puesto que da el valor pero en codigo ASCCI, necesito hacer que no acepte letras es decir que si pongo una letra me imprima "el valor no es un numero, vuelve a escribirlo" y me pida de nuevo el dato. de antemano gracias

2006-10-06 10:58:53 · update #1

es un programa para el compilador turbo c++

2006-10-06 11:01:09 · update #2

7 respuestas

Me quean serias dudas en cuanto a decir que

d!=int

ya que int es un identificador... Lo que puedes hacer es tomar tu número como una cadena de caracteres, tomar cada uno de los caracteres de esta cadena y comparar su valor ASCII. Si sabemos que los valores ASCII del número 0 al 9 son del 48 al 57, puedes hacer algo así:

int i = 0;
int esentero = 1;
char cadena[20];
scanf("%s",cadena);
for (i = 0 ; i < 20 ; i++){
if (cadena[i] < 48 || cadena[i] > 57)
esentero = 0;
}
if (esentero == 0)
printf ("El numero no es entero");

Según yo, debería de funcionar. Haciendo alusión de la misma maner al comentario anterior, en java no debes de hacer un cast, en java es mucho más fácil. Si tienes un string, lo que debes de hacer es:

String a = "12345";
try {
Integer.parseInt(a);
} catch (NumberFormatException e) {
System.out.println ("La cadena no es numero");
}

Espero haber sido de ayuda.

2006-10-07 12:03:21 · answer #1 · answered by Anonymous · 0 0

es sencillo, y depende del lenguaje de rogramacion que estes usando.
pero en teoria debe ser algo asi
la variable que captura tu numero la debes de comparar antes de seguir con el resto del programa.
Por ejemplo
scanf("%d",&numero);
if(numero!=int){
printf("\nEl numero no es un entero");
}
else
//resto del programa.
Solo debes de comparar que el dato introducido es un entero para java solo debes de hacer un casting.

2006-10-06 17:42:52 · answer #2 · answered by Edmundo D 4 · 0 0

Pues quizas con un arreglo en el que tengas todas las letras y despues un if, en el que si la variable es alguna del arreglo, que envie a pantalla el error de que necesitas introducir un numero ...
Aunque la verdad hace mucho que no programo en C, dejame seguir recordando a ver si te puedo ayudar ...

2006-10-06 17:42:49 · answer #3 · answered by Lupita 5 · 0 0

usa mejor char en lugar de int, char es aplicable solo para un conjunto de caracteres y entre ( ), pero los de forma de cuadro, especificar el numero de caracteres que deseas usar algo asi como

char nombre(30);

2006-10-06 17:41:18 · answer #4 · answered by Alexis H 1 · 0 0

NO ENTENDI NADA, ME PUEDES TRADUCIR LA IDEA?

2006-10-06 17:37:57 · answer #5 · answered by mmm 7 · 0 1

no entendi ni madres

2006-10-06 17:35:47 · answer #6 · answered by Anonymous · 0 1

trata poniendo 468
Saludos!!

$$**El loko Bosster**$$

2006-10-06 17:34:21 · answer #7 · answered by Anonymous · 0 1

fedest.com, questions and answers