elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Una duda de novato en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Una duda de novato en C  (Leído 1,653 veces)
Isidro_SF

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Una duda de novato en C
« 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!


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Una duda de novato en C
« Respuesta #1 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
  1. printf("Introduce un valor para y2:");
  2. scanf("%lf", &y2);
  3. printf("El valor de f es: %f\n", y2);

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
  1. printf("Introduce un caracter para z:");
  2. scanf(" %c", &z);
  3. printf("El valor de z es: %c\n",z);

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++.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Isidro_SF

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: Una duda de novato en C
« Respuesta #2 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!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DUDA DE NOVATO
Ingeniería Inversa
hanns 3 3,376 Último mensaje 11 Marzo 2008, 16:53 pm
por Mintaka
Duda de Novato
Materiales y equipos
bl4ckf4lk0n 2 2,122 Último mensaje 19 Julio 2008, 21:55 pm
por zydas
Duda de un novato
Hacking
Panic0 6 5,769 Último mensaje 13 Mayo 2021, 05:57 am
por mchz
Duda de novato
Dudas Generales
emaksiwa 4 6,101 Último mensaje 7 Mayo 2022, 23:06 pm
por arthurozmh
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines