C/Visual C - Duda con C y funciones

 
Vista:
sin imagen de perfil

Duda con C y funciones

Publicado por Nahuel (2 intervenciones) el 09/08/2017 03:27:43
Hola gente, buenas noches.

Este mi primer post en este foro y tengo una duda en un problema que estoy practicando para dar un final en la universidad.

El ejercicio es el que adjunto. Dentro de este ejercicio tengo que hacer los puntos 2, 4 y 5.


El problema es que al pedir por ejemplo el promedio del valor de las instalaciones con el boton 3 para que realicen lo que pido no me dan ningún resultado.

Les copio mi código (aun incompleto):
#include <stdio.h>
#include <stdlib.h>
int vs [5];
int vz [10];
void mostrartipodeinstalacion();
int promediodelvalordelasinstalaciones();
void promedioinstalacionesxzona();
void cargadatos();
int main(int argc, char *argv[]) {
int nroinstalacion;
int nroservicio;
int zona;
int monto;
int instsolicitada;
int prom;
int acumulador;
int opc = 0;
int promedio = 0;
// Opciones del programa
do {
system ("cls");
printf(" > 1 Carga de datos \n" );
printf(" > 2 Mostrar tipo de instalacion mas solicitada en total \n" );
printf(" > 3 Promedio del valor de las instalaciones \n" );
printf(" > 4 Promedio del valor de las instalaciones realizadas en cada zona \n" );
printf(" > 0 Salir " );
printf("\n \n");
printf("Seleccione alguna opcion segun su numero: \n");
scanf("%d",&opc);

switch (opc)
{
case 1:
cargadatos();
break;
case 2:
mostrartipodeinstalacion();
break;
case 3:
prom = promediodelvalordelasinstalaciones(monto);
printf("El promedio del valor de las instalaciones es de: %d. \n",promedio);
break;
case 4:
promedioinstalacionesxzona();
break;
}

} while (opc != 0); //Mientras que "wop" sea indistinto a cero el programa se seguirá ejecutando.
system("pause");
return 0;
}

void mostrartipodeinstalacion(){

}


int promediodelvalordelasinstalaciones(int monto){
int promedio = 0;
promedio = monto / 2;

return promedio;
}

void promedioinstalacionesxzona(){

}

void cargadatos() {
int i;
int nroinstalacion = 0;
int nroservicio = 0;
int zona = 0;
int monto = 0;
int prom = 0;
int acumulador = 0;



for (i=0;i<2;i++){
printf("\n");
printf("Introduzca el numero de instalacion: \n");
scanf("%d",&nroinstalacion);
printf("Introduzca el numero de servicio: \n");
scanf("%d",&nroservicio);
printf("Introduzca el numero de zona: \n");
scanf("%d",&zona);
printf("Introduzca el monto: \n");
scanf("%d",&monto);
vs [nroservicio];
vz [zona];
acumulador =+ monto;
prom = promediodelvalordelasinstalaciones(monto);


}

}

Cualquier consejo u ayuda que quieran darme será bienvenido, lo principal es mejorar en todas las formas.

Gracias!


IMG_4254
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 72
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Duda con C y funciones

Publicado por juanki (31 intervenciones) el 09/08/2017 12:55:31
Hola

¿Te refieres a este trozo de código?

1
2
3
4
case 3:
prom = promediodelvalordelasinstalaciones(monto);
printf("El promedio del valor de las instalaciones es de: %d. \n",promedio);
break;

Si te fijas, ahí estás almacenando el valor que devuelve la función en la variable prom, pero luego imprimes otra: promedio

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Duda con C y funciones

Publicado por Nahuel (2 intervenciones) el 09/08/2017 15:37:46
Hola

Sí, a esa parte del código me refería, cambié lo que me dijiste pero tampoco sucede nada al apretar la opción 3. No sé en que parte del código estaré mal,

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Duda con C y funciones

Publicado por Diego (150 intervenciones) el 10/08/2017 03:27:58
Buenas noches.
1
2
3
4
5
6
int promediodelvalordelasinstalaciones(int monto){
int promedio = 0;
promedio = monto / 2;
 
return promedio;
}

en esta funcion se devuelve monto(variable promediodelvalordelasinstalaciones) / 2, pero la variable monto(del main) esta declarada y no inicializada. Ese es uno de los detalles en el codigo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 72
Ha mantenido su posición en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Duda con C y funciones

Publicado por juanki (31 intervenciones) el 10/08/2017 21:40:35
Hola

Si el cambio es el que has puesto en otro foro, no me extraña que siga sin funcionar, lo único que has hecho es ignorar el valor de retorno, tienes que imprimir el valor que retorna la función:


1
2
3
4
case 3:
prom = promediodelvalordelasinstalaciones(monto);
printf("El promedio del valor de las instalaciones es de: %d. \n",prom);
break;

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar