Autor
|
Tema: Float no marca decimales (Leído 1,840 veces)
|
Vale_JCH
Desconectado
Mensajes: 1
|
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: /*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
Mensajes: 27
|
Tu mismo codigo con algunas correcciones. Saludos. /*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> no uses esta libreria, no es standard int main() { int edad,i,hombre,mujer; float prom,suma; 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 ); suma += edad; printf("\nDame el genero al que pertenece M/H: "); if(genero == 'M' || genero == 'm') mujer += 1; else if(genero == 'H' || genero == 'h') hombre += 1; } prom = (suma/10); printf("\nLa suma de las edades de mujeres y hombres es: %.2f",suma ); printf("\nEl promedio de las edades es: %.1f",prom ); printf("\nHay %d hombres",hombre ); printf("\nHay %d mujeres",mujer ); return 0; }
|
|
|
En línea
|
|
|
|
EdePC
|
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
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Comando] Float.bat (Sumas y restas con decimales)
Scripting
|
LauBuru
|
2
|
4,086
|
29 Junio 2010, 10:45 am
por LauBuru
|
|
|
ayuda con float
Programación C/C++
|
ediporey2000
|
6
|
3,827
|
29 Junio 2010, 13:40 pm
por nicolas_cof
|
|
|
Problema con undefined reference to `Shoot::Shoot(float,float)´
Programación General
|
nakas95
|
2
|
2,357
|
20 Mayo 2014, 00:17 am
por nakas95
|
|
|
Problema con div y float
Desarrollo Web
|
hegispok
|
3
|
2,799
|
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,985
|
20 Octubre 2017, 23:55 pm
por CharlyScoTT
|
|