Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: lbellone en 07 de Mayo 2017, 01:57
-
Hola gente de la comunidad tengo un problema con scanf.
Cuando hago esto funciona:
#include <stdio.h>
#include <ctype.h>
int main (){
float a='b';
int escaracter=0,terminar=0;
escaracter=(int)a;
terminar=isalpha(escaracter);
printf("terminar=%d\nescaracter=%d\na=%f\n",terminar,escaracter,a);
if(terminar!=0){
printf("ES CARACTER\n");
return 1;
}
printf("NO ES CARACTER\n");
return 0;
}
Pero cuando hago esto no:
#include <stdio.h>
#include <ctype.h>
int main (){
float a=0;
int escaracter=0,terminar=0;
printf("Ingrese NUMERO o CARACTER\n");
scanf("%f",&a);
escaracter=(int)a;
terminar=isalpha(escaracter);
printf("terminar=%d\nescaracter=%d\na=%f\n",terminar,escaracter,a);
if(terminar!=0){
printf("ES CARACTER\n");
return 1;
}
printf("NO ES CARACTER\n");
return 0;
}
No entiendo porque scaf("%f",&a); si le pongo un caracter no me guarda nada, me guarda cero, como si ubiera ingresado un cero (0).
Porfavor si me puede ayudar, muchas gracias.
-
Hola lbellone, parece que estás haciendo un uso extraño de los conceptos de C, si le pones un caracter no te guarda nada puesto que has declarado que la variable es de tipo float que es un tipo numérico decimal
Te recomiendo revisar los conceptos, explicados en el curso C desde cero disponible en http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210
Saludos