Miren en este porgrama compila bien, pero en la ejecucci{on cuando se supone deber{ia operar la variable bc y después mostrar su resultado. No lo hace. Se que puede estar mal la lógica para muchos pero aquí les dejo el código:
#include<stdio.h>
void main (void){
float a = 1.1 , b = 1.2, c = 1.3, d = 1.4;
float f1,f2,bc, f3,f4;
int a1, a2, a3,a4, encuestas;
printf ("ingrese la cantidad de veces que se registro 1.1:");
scanf("%i",&a1);
printf ("ingrese la cantidad de veces que se registro 1.2:");
scanf("%i",&a2);
printf ("ingrese la cantidad de veces que se registro 1.3:");
scanf("%i",&a3);
printf ("ingrese la cantidad de veces que se registro 1.4:");
scanf("%i",&a4);
encuestas = a1 +a2 +a3 +a4;
printf ("El total de encuestas son %i\n",encuestas);
bc =(a1/encuestas)*100;
printf (" el porcentaje de 1.1 es %g%% \n",bc);
}
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
primero que nada
main siempre debe ser de tipo int y retornar 0 si todo salió bien
tu problema es un problema de tipos de operadores
tu operación para el compilador se ve como
int/int * const int
la división de interos retornará un entero, por lo tanto al ser por ejemplo 5/20, el resultado será 0
te recomiendo leer aquí donde tocamos esto en una poco más de detalle
https://foro.elhacker.net/buscador-t461210.0.html (https://foro.elhacker.net/buscador-t461210.0.html)
Solucionado cambiar todo de int a float, ahora sí devuelve la información esperada
antes la declaraci{on fue:
void main (void){
float a = 1.1 , b = 1.2, c = 1.3, d = 1.4;
float f1,f2,bc, f3,f4;
int a1, a2, a3,a4, encuestas;
ahora es :
void main (void){
float a = 1.1 , b = 1.2, c = 1.3, d = 1.4;
float f1,f2,bc, f3,f4, a1,a2,a3,a4;
int encuestas;
Gracias.
· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
sería también bueno que tomaras en consejo el resto... moví tu respuesta porque no va en el otro tema de aquí y no ignores las advertencias por favor