- No validas el rango del número ingresado por teclado, es decir, yo puedo
colocar por ej. el numero 325 y no arroja o avisa de ningun problema.
Esteban Hiriarte escribió :
/* no supe como hacer, para que cuando se ingrese un dato distinto a un numero*/
/* el programa sea capaz de leerlo, y entender de que debe pedir que se ingrese*/
/* o traves ese valor*/
Respuesta :
Una forma podría ser leer un caracter (scanf("%c",&var);) y luego ver si
var <= '9' y que var >= '0' y esto significa que el caracter leído es un
caracter numérico, pero para usarlo como entero hay que transformarlo
mediante la función conv_char_a_int(char var) vista en clases.
Cuando se hacen operaciones tales como +,-,*,/,%,<,>,<=,>=,==,!=,etc.,
con caracteres se transforman los caracteres a su equivalente en la tabla
ascii.
Ej. :
ASCII Caracter
48 '0'
49 '1'
50 '2'
51 '3'
52 '4'
53 '5'
54 '6'
55 '7'
56 '8'
57 '9'
Por lo que cuando yo pregunto por '0'<'7' es igual a que yo preguntara por
48 < 55.
Un programa para ver la tabla ascii del PC es el sgte. :
#include
main()
{
int i=0;
for (i=0;i<128;i++)
printf("\n%d = %c",i,i);
return 0;
}