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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Dudas programación en C
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas programación en C  (Leído 1,894 veces)
ironserch

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Dudas programación en C
« en: 21 Septiembre 2014, 15:54 pm »

Hola, necesito escribir un programa C mediante el cual se introduzcan 4 numeros enteros por teclado y que calcule la media aritmetica de los 4 numeros.

En principio el codigo que tengo es:


Código
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. void main()
  5. {
  6.    int n1, n2, n3, n4;
  7.  
  8.    printf("Introducir primer valor entero: \n\n");
  9.    scanf("%d", &n1);
  10.  
  11.    printf("Introducir segundo valor entero: \n\n");
  12.    scanf("%d", &n2);
  13.  
  14.    printf("Introducir tercer valor entero: \n\n");
  15.    scanf("%d", &n3);
  16.  
  17.    printf("Introducir cuarto valor entero: \n\n");
  18.    scanf("%d", &n4);
  19.  
  20.    printf("\n\nLa media aritmetica es: %d\n", (n1 + n2 + n3 + n4)/4 );
  21. }

El problema es que si introduzco los 4 numeros iguales, me lo hace correctamente; pero en cuanto meto por ejemplo otros numeros (p. ej. 2,1,2,1) me tendria que devolver 1,5. Se que ese ultimo "%d" me devuelve un numero entero, p. ej. en el ejemplo anterior me devolveria la parte entera de 1,5 es decir el 1. Pero probé cambiando "%d" por "%f" (float) e incluso por "%6.2f" pero me de vuelve 0.00 y 0.000000.

Asique mi duda es: ¿Como se pondria para que devolviera la media aritmetica y que saliese decimales?


Muchas gracias ;)


En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Dudas programación en C
« Respuesta #1 en: 21 Septiembre 2014, 16:15 pm »

Estas usando el tipo int (entero) para las variables. No te va mostrar el valor real... en vez de usar int use float o bouble. En printf use el modificador adecuado %f en vez de %d para mostrar el resultado.


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Dudas programación en C
« Respuesta #2 en: 21 Septiembre 2014, 16:31 pm »

¿Como se pondria para que devolviera la media aritmetica y que saliese decimales?
Cuando ambos operando del operador  "/" son enteros el resultado también lo es (por supuesto no hay parte decimal), para obtener un resultado con decimales por lo menos uno de ellos debe ser de tipo float, double o long double.

Para conseguirlo una opción es, como ya te comento vangodp, utilizar variables del mentado tipo, la opción mas simple es utilizar una literal, de esta forma:
Código
  1. printf("La media aritmetica es %f\n", (n1 + n2 + n3 + n4) / 4.0); /* 4.0 es de tipo double */

Un saludo
« Última modificación: 21 Septiembre 2014, 17:20 pm por rir3760 » 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
vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: Dudas programación en C
« Respuesta #3 en: 21 Septiembre 2014, 17:05 pm »

¿no hay que poner %f en vez de %d?   :huh: O eso creo jeje
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Dudas programación en C
« Respuesta #4 en: 21 Septiembre 2014, 17:19 pm »

¿no hay que poner %f en vez de %d?
Ouch! Claro que si, eso me pasa por tasajear el código sin compilarlo. Ya corregí mi mensaje anterior.

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
ironserch

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Dudas programación en C
« Respuesta #5 en: 21 Septiembre 2014, 17:44 pm »

Muchas gracias!!  :D :D :D :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
algunas dudas en programacion BATCH(nuevo en esto de programacion)
Scripting
stock_C 8 9,014 Último mensaje 19 Junio 2009, 18:08 pm
por frank30
Programación: Dudas, muchas dudas
Dudas Generales
GoRock 4 3,683 Último mensaje 9 Marzo 2013, 03:39 am
por GoRock
dudas programación
Desarrollo Web
jemez44 1 1,464 Último mensaje 23 Noviembre 2013, 17:24 pm
por #!drvy
Dudas programación en C
Programación C/C++
ironserch 3 1,818 Último mensaje 21 Septiembre 2014, 02:57 am
por kaiserr
Dudas programación en C
Programación C/C++
ironserch 4 2,312 Último mensaje 25 Septiembre 2014, 05:17 am
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines