Foro de elhacker.net

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:
Código
  1. #include<stdio.h>
  2.  
  3. void main (void){
  4. float a = 1.1 , b = 1.2, c = 1.3, d = 1.4;
  5. float f1,f2,bc, f3,f4;
  6. int a1, a2, a3,a4, encuestas;
  7. printf ("ingrese la cantidad de veces que se registro 1.1:");
  8. scanf("%i",&a1);
  9. printf ("ingrese la cantidad de veces que se registro 1.2:");
  10. scanf("%i",&a2);
  11. printf ("ingrese la cantidad de veces que se registro 1.3:");
  12. scanf("%i",&a3);
  13. printf ("ingrese la cantidad de veces que se registro 1.4:");
  14. scanf("%i",&a4);
  15. encuestas = a1 +a2 +a3 +a4;
  16. printf ("El total de encuestas son %i\n",encuestas);
  17. bc =(a1/encuestas)*100;
  18. printf (" el porcentaje de 1.1 es %g%% \n",bc);
  19.  
  20. }
  21.  


· 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
  1. 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:

Código
  1. void main (void){
  2. float a = 1.1 , b = 1.2, c = 1.3, d = 1.4;
  3. float f1,f2,bc, f3,f4;
  4. int a1, a2, a3,a4, encuestas;
  5.  
  6.  
  7.  
  8. ahora es :
  9. void main (void){
  10. float a = 1.1 , b = 1.2, c = 1.3, d = 1.4;
  11. float f1,f2,bc, f3,f4, a1,a2,a3,a4;
  12. 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