Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Gotttlieb en 10 Marzo 2011, 15:32 pm



Título: Problema con funciones (resuelto)
Publicado por: Gotttlieb en 10 Marzo 2011, 15:32 pm
Hola buenas a todos. Mi problema es el siguiente:

En la funcion llamada Venta me dice que hay demasiados argumentos... os copio el codigo.
Seguro que es una chorrada pero no consigo solucionarlo.
Gracias por adelantado.

Código:
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int  menu ()
{
int opcion;

printf("1.-Venda de bitllets\n");
printf("2.-Devolucio de bitllets\n");
printf("3.-Estat de venta\n");
printf("0.-Salir\n");
printf("Seleccione la opcion que desea\n");
scanf("%d",&opcion);

return(opcion);
}

void venta ()
{
printf("Introduzca el numero de billetes que quiere comprar el cliente\n");
scanf("%d",&billetes);
printf("Introduzca el pvp de 1 billete\n");
scanf("%f",&precio);
if (plazas-billetes<0 || (billetes+suma)>plazas)
printf("Error; ha intentado comprar mas billetes que plazas hay en el bus\n");
else
{
printf(" Ha decidido comprar %d billetes, el precio total es de %.2f euros\n", billetes, billetes*precio);
libres=plazas-billetes;
suma=suma+billetes;
}

system("PAUSE");




}


void main()

{
int opcion, plazas, billetes, libres=0, suma=0, *P_suma, *P_libres,*P_billetes,*P_plazas;
float precio, *P_precio;
printf("Introduzca el numero de plazas del autobus\n");
scanf("%d",&plazas);
libres=plazas;
P_suma=&suma;
P_libres=&libres;
P_billetes=&billetes;
P_plazas=&plazas;
P_precio=&precio;


do
{
opcion=menu();
switch (opcion)
{
case 1:
//aqui esta la funcion problematica
venta( P_suma, P_libres, P_billetes, P_plazas, P_precio);

break;

case 2:
printf("Introduzca el numero de billetes que quiere devolver el cliente\n");
scanf("%d",&billetes);
printf("Introduzca el pvp de 1 billete\n");
scanf("%f",&precio);
if (suma-billetes<0 || (billetes-suma)<plazas)
printf("Error; ha intentado devolver mas billetes que plazas compradas hay en el bus\n");
else
{
printf(" Ha decidido devolver %d billetes, a devolver  %.2f euros\n", billetes, billetes*precio);
suma=suma-billetes;
libres=plazas+billetes;
}

system("PAUSE");

break;

case 3:
printf("Las plazas del Autobus son: %d\n",plazas);
printf("Las plazas libres del Autobus son: %d\n", plazas-suma);
printf("Los billetes vendidos son: %d\n",suma);
system("PAUSE");
break;

case 0:
break;

default:
{
printf("La opcion seleccionada no existe; porfavor seleccione otra\n");
system("PAUSE");
}
}
system("CLS");
} while(opcion!=0);

}


Título: Re: Problema con funcones
Publicado por: RyogiShiki en 10 Marzo 2011, 15:37 pm
Código
  1. void venta ()

Mira como tienes venta, no le estás pasando ningún parametro! la lista de parametros eestá vacia.

Código
  1. venta( P_suma, P_libres, P_billetes, P_plazas, P_precio)
Mientras que cuando la llamas le pasas  5 parametros, esos parametros deben estar declarados en la implementación y el prototipo de la funcion.

Lo que te sugiero es que hagas y pongas los prototipos de las funciones antes de su implementación, así te evitas confusiones.

Saludos


Título: Re: Problema con funciones
Publicado por: Gotttlieb en 10 Marzo 2011, 15:41 pm
Me olia alguna tonteria asi!!!! Muchissimas gracias .... a veces me desespero con estas cosas...