Título: Una duda de novato en C Publicado por: Isidro_SF en 17 Julio 2014, 21:21 pm ¡Buenas! Mi nombre es Isidro y resulta que cuando pasen las vacaciones empezaré la carrera de informática y aunque ya hace un año que empecé a investigar lenguajes de programación y tal, ahora es cuando estoy trabajando "en serio" con el objetivo de aprender y así al menos empiezo a entrar en el mundillo y me será más fácil luego la asignatura de programación en la universidad. Estoy con el lenguaje C que bueno es muy recomendado para empezar y tal y he empezado con este lenguaje. Estoy con este problema que es de los más básicos:
3.- Escribe un programa que lea desde teclado cuatro datos de tipo char, int, float, double y los muestre en pantalla. El programa que yo he escrito es: #include <stdio.h> #include <stdlib.h> int main (){ int x; float y; double y2; char z; printf ("Introduce un valor para x, numero entero: "); scanf ("%i",&x); printf("El valor de x es:%i.\n",x); printf ("Introduce un valor para y, numero decimal:"); scanf("%f",&y); printf("El valor de y es:%f.\n",y); printf ("Introduce un valor para y2:"); scanf ("%f",&y2); printf("El valor de f es: %f. \n",y2); printf ("Introduce un caracter para z :"); scanf("%c",&z); printf("El valor de z es: %c. \n",z); system ("pause"); return 0; } Cuando lo ejecuto va bien hasta que me pide el carácter y el valor para y2; en el carácter ni siquiera puedo escribir nada y cuando me pide el valor de y2 sale 0.00000 y no entiendo por qué. Seguro que alguien puede resolverme esta duda no se donde está el fallo , por favor si alguien puede ayudarme se lo agradecería! Título: Re: Una duda de novato en C Publicado por: rir3760 en 18 Julio 2014, 02:32 am Los errores en el programa son dos.
1) Para leer con scanf un numero de punto flotante y almacenarlo en una variable de tipo double debes utilizar el especificador "%lf", de esta forma: Código 2) Cuando scanf se utiliza para leer un carácter ella retorna el primero que encuentra en el bufer de la entrada estándar y en tu caso es el '\n' o avance de linea de (valga la redundancia) la linea anterior. Para descartar ese carácter y leer el siguiente debes utilizar: Código Y por favor la próxima vez que tengas una duda o problema con un programa en lenguaje C utiliza el foro apropiado: Programación C/C++ (http://foro.elhacker.net/programacion_cc-b49.0/). Un saludo Título: Re: Una duda de novato en C Publicado por: Isidro_SF en 18 Julio 2014, 09:54 am ¡Muchas gracias! Ha ido perfectamente te lo agradezco. No sabía que se pusieran ahí las dudas de C pero bueno lo siento jajajajaj Para la próxima ya se a donde ir, gracias de nuevo, un saludo!
|