Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: diego-4 en 26 Mayo 2012, 01:11 am



Título: Consulta ej. corte de control(camiones)
Publicado por: diego-4 en 26 Mayo 2012, 01:11 am
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


Código:
#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 :)


Título: Re: Consulta ej. corte de control(camiones)
Publicado por: Ferno en 26 Mayo 2012, 18:00 pm
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:

Código
  1. int importe(int x)
  2. {
  3. scanf("%d",&x);
  4. return(x);
  5. }

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


Título: Re: Consulta ej. corte de control(camiones)
Publicado por: Roboto en 27 Mayo 2012, 22:09 pm
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.


Título: Re: Consulta ej. corte de control(camiones)
Publicado por: diego-4 en 28 Mayo 2012, 03:41 am
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 ...