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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Float no marca decimales
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Float no marca decimales  (Leído 1,586 veces)
Vale_JCH

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Float no marca decimales
« en: 16 Marzo 2019, 01:51 am »

Hola, es la primera vez que publico.
El problema consiste en que debo sacar el promedio de las edades de 10 personas y de ahí contar cuantas son mujeres y cuantos hombres, hasta ahí todo va bien; el problema es con float, que cuando hace la operación para sacar el promedio no salen los decimales, si sale el numero entero pero aparece algo así 7.00. No se si me explique bien.
Codigo:
Código:
/*Programa que determina al promedio de la edad de 10 personas y te dice 
cuantas con mujeres y cuantas son hombres*/
#include<stdio.h>
#include<conio.h>
main()
{
int edad,suma,i,hombre,mujer;
float prom;
char genero;
hombre = mujer = suma = 0;
printf("PORGRAMA QUE DETERMINA EL PROMEDIO DE LAS EDADES DE 10 PERSONAS\n");
for(i=1; i<=10; i++ ){
printf("\nProporciona la %d edad: ",i);
scanf("%d",&edad);
suma += edad;
printf("\nDame el genero al que pertenece M/H: ");
scanf("%s",&genero);
if(genero == 'M' || genero == 'm'){
mujer += 1;
}
if(genero == 'H' || genero == 'h'){
hombre += 1;
}
}
prom = (suma/10);
printf("\nLa suma de las edades de mujeres y hombres es: %d",suma);
printf("\nEl promedio de las edades es: %.1f",prom);
printf("\nHay %d hombres",hombre);
printf("\nHay %d mujeres",mujer);
getch();
return 0;
}


En línea

dariodr01

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Re: Float no marca decimales
« Respuesta #1 en: 16 Marzo 2019, 04:49 am »

Tu mismo codigo con algunas correcciones.
Saludos.

Código
  1. /*Programa que determina al promedio de la edad de 10 personas y te dice
  2. cuantas con mujeres y cuantas son hombres*/
  3. #include<stdio.h>
  4. //#include<conio.h> no uses esta libreria, no es standard
  5.  
  6. int main()
  7. {
  8.    int edad,i,hombre,mujer;
  9.    float prom,suma;
  10.    char genero;
  11.  
  12.    hombre = mujer = suma = 0;
  13.  
  14.    printf("PORGRAMA QUE DETERMINA EL PROMEDIO DE LAS EDADES DE 10 PERSONAS\n");
  15.  
  16.    for(i=1; i<=10; i++ ) {
  17.        printf("\nProporciona la %d edad: ",i);
  18.        scanf("%d",&edad);
  19.  
  20.        suma += edad;
  21.  
  22.        printf("\nDame el genero al que pertenece M/H: ");
  23.        scanf("%s",&genero);
  24.  
  25.        if(genero == 'M' || genero == 'm')
  26.            mujer += 1;
  27.        else if(genero == 'H' || genero == 'h')
  28.            hombre += 1;
  29.    }
  30.    prom = (suma/10);
  31.  
  32.    printf("\nLa suma de las edades de mujeres y hombres es: %.2f",suma);
  33.    printf("\nEl promedio de las edades es: %.1f",prom);
  34.    printf("\nHay %d hombres",hombre);
  35.    printf("\nHay %d mujeres",mujer);
  36.    getchar();
  37.  
  38.    return 0;
  39. }
  40.  
  41.  


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.057



Ver Perfil
Re: Float no marca decimales
« Respuesta #2 en: 16 Marzo 2019, 05:23 am »

Saludos,

- Básicamente si operas dos números enteros, te devuelve otro número entero, luego este se guarda en tu variable tipo float pero la parte decimal ya se perdió en la operación.

- Tendrías que convertir explícitamente un operando a float para que devuelva un float:

prom = sum / 10.0

- También puedes hacer las correcciones que indica dariodr01, solo asegúrate de formatear la salida a entero de "suma" como ya lo tenías hecho.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Comando] Float.bat (Sumas y restas con decimales)
Scripting
LauBuru 2 3,868 Último mensaje 29 Junio 2010, 10:45 am
por LauBuru
ayuda con float
Programación C/C++
ediporey2000 6 3,451 Último mensaje 29 Junio 2010, 13:40 pm
por nicolas_cof
Problema con undefined reference to `Shoot::Shoot(float,float)´
Programación General
nakas95 2 2,078 Último mensaje 20 Mayo 2014, 00:17 am
por nakas95
Problema con div y float
Desarrollo Web
hegispok 3 2,487 Último mensaje 3 Febrero 2016, 00:41 am
por hegispok
si marca >4 le diga que no pueda y/o si marca <1 le diga lo mismo
Java
CharlyScoTT 2 2,729 Último mensaje 20 Octubre 2017, 23:55 pm
por CharlyScoTT
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines