Consulta ej. corte de control(camiones)

Iniciado por diego-4, 26 Mayo 2012, 01:11 AM

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

diego-4

Buenas noches a todos , tengo un problema con este codigo en la funcion importe... estuve leyenedo como retonar una funcion que no recibe nada y q devuelve un scanf... pero no entendi sinceramente ... quisiera saber como podria ponerlo para que me funcione el programa... ahi comento en las lineas q me tira error


#include <stdio.h>
#include <conio.h>

int imporencomienda(int,int,int,int);
void importe ();
void main()
{int p,camion=0,a,b,z,c,impt=0,carga,impc;
float prome1;
a=importe(); ////not an allowed type
b=importe();                  ////not an allowed type
c=importe();           ////not an allowed type
do
  {
   printf("Ingresar Peso");
   scanf("%d",&p);
   }
   while(p<=0&&p>=200);
  printf("\t\tDespacho de Encomiendas");
while(p>0)
{
  camion++;
  carga=0;
  impc=0;
  while(carga+=p<=2000&&p>0)
   {
    carga+=p;
    impc=imporencomienda(p,a,b,c);

    do
  {
   printf("Ingresar Peso");
   scanf("%d",&p);
   }
   while(p<=0&&p>=200);
  }
  printf("Camion %d Carga %d Importe por Camion %d",camion,carga,impc);
if(carga>1800)
  {
   impt+=impc;
   c++;
   }
  else ;
}
prome1=impt/c;
printf("Prome 90% %f",prome1);
getch();
}
int imporencomienda(int a,int b, int c, int d)
{
if(a>0&&a<=10)
   return(b);
else
  if(a>10&&a>=40)
  return(c);
else
  return(d);
  }
void importe(x)
{
scanf("%d",&x);
return(x);      ////importe() cannot return a value
}


gracias :)

Ferno

Estás declarando que vas a retornar un void, cosa que básicamente se utiliza para que la función no devuelva nada.
En tu caso, deberías de cambiar la firma de la función para que retorne el tipo de tu variable "x", que aparentemente es un int.
Entonces debería ser:

int importe(int x)
{
scanf("%d",&x);
return(x);
}


BTW, hay un subforo especialmente para programación C/C++.

Roboto

void importe(int x)
{
scanf("%d",&x);
}

en teoria si haces eso,deberia mostrartelo.

si haces lo k dice freno,tendrias k borrar el scanf,ya que te lo mostraria dentro. y el retorno no haria nada,a no ser k lo mostraras afuera.

eso si,si tu idea es coger la variable X y luego seguir usandola fuera de la funcion,"que no sea solo para mostrar" entonces haz lo k te dice ferno.


recuerda,el importe mejor k int suele ser double,ya que los precios llevan decimales.

diego-4

Muchisimas gracias. y perdon por postear donde no se debia... me resulto bastante bien, me di cuenta q tambien tenia problemas en el programa principal :E saludosss ...