Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/09/2013, 19:10
starfix
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 12 años, 11 meses
Puntos: 25
Respuesta: No entiendo poruqe pasa esto

No encuentro las palabra para detallar el problema que tenes, pero pasa en que en c se guarda el ENTER y se pasa de largo el scanf. Vas a encontrar una mejor explicación aquí:

Código C++:
Ver original
  1. #include <stdio.h>
  2.  
  3. int main(){
  4. //declarar variables:
  5. long int a;
  6. float b;
  7. char c;
  8. //pedir datos de las variables(input/output)
  9.  
  10. //de la variable entera
  11. printf("Dame un valor numerico para a\n");
  12. scanf("%d",&a);
  13. //%d-> el tipo de datos que se va a introducir/&a->en nombre de la varible.
  14.  
  15. //de la variable flotante
  16. printf("Dame un valor decimal para b\n");
  17. scanf("%g",&b);
  18. //%f-> el tipo de datos que se va a introducir/&b->en nombre de la varible.
  19.  
  20. //de la variable caracter
  21. printf("Dame una letra para c\n");
  22. scanf(" %c",&c);
  23. //%c-> el tipo de datos que se va a introducir/&c->en nombre de la varible.
  24.  
  25. //se imprimen los datos introducidos
  26. printf("El valor de la variable de tipo entero es: %d\n",a);
  27. printf("El valor de la variable de tipo flotante es: %g\n",b);
  28. printf("El valor de la variable de tipo caracter es: %c\n",c);
  29.  
  30.  
  31. return 0;
  32. }

La solución sería colocar un espacio en blanco en el scanf que lee el carácter, para que se pase de largo el enter que quedo en el buffer al ingresar el número decimal.


Saludos.