Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: matver en 29 Enero 2017, 15:28 PM

Título: C no realiza operación aritmetica.
Publicado por: matver en 29 Enero 2017, 15:28 PM
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
Título: Re: C no realiza operación aritmetica.
Publicado por: engel lex en 29 Enero 2017, 15:35 PM
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

Código (cpp) [Seleccionar]
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)
Título: Re: Problema con decimales (C)
Publicado por: matver en 29 Enero 2017, 15:45 PM
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
Título: Re: C no realiza operación aritmetica.
Publicado por: engel lex en 29 Enero 2017, 15:50 PM
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