C no realiza operación aritmetica.

Iniciado por matver, 29 Enero 2017, 15:28 PM

0 Miembros y 1 Visitante están viendo este tema.

matver

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
-Engel Lex

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

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

matver

#2
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
-Engel Lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.