Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: jymevs en 21 Noviembre 2015, 16:05 pm



Título: Necesito ayuda con mi código Los recompensaré
Publicado por: jymevs en 21 Noviembre 2015, 16:05 pm
Chicos, tengo un problema con mi código, es bastante básico, la condición era que tuviera tres funciones de lo que sea, pero no me regresa el valor correcto, aquí se ve la descripción del programa, gracias y se los recompensaré.


//un salón de eventos ofrece servicios todos los días. por la mañana el servicio cuesta $680
//a partir de las 2:00pm se cobra $800 y si el evento es después de las 9:00 pm, el costo sube al $970.
//cada evento solo debe durar máximo 4 horas. cada hora adicional incrementa el costo en $80 previo aviso (durante el apartado)
//si el evento dura más de lo notificado se cobra un recargo de $150 por hora.
//realice un programa que permita al cliente saber
//el gasto que realizará de acuerdo a la hora del apartado y al total de tiempo estimado como duración del evento.
#include <stdio.h>
#include<conio.h>
#include<windows.h>
#include<stdlib.h>
void marco(void);
void horario(int horar,int dur);

int main(void)
{
int j;
clrscr();
marco();
horario(0,0);
cprintf("tu costo seria %i",j);
return 0;
}

void horario(int horar, int dur)
{
int j=0;
gotoxy(17,7);
cprintf("en que horario desdeas tu evento\n");
gotoxy(18,8);
cprintf("manana de 8:00am a 1:00pm escriba 1\n");
gotoxy(19,9);
cprintf("tarde de 2:00pm a 8:00pm escriba 2\n");
gotoxy(17,10);
cprintf("noche de 9:00pm a 1:00am escriba 3\n");
gotoxy(17,11);
scanf("%i",&horar);
gotoxy(15,12);
cprintf("si deseas mas horas en tu evento escribe el numero de horas\n");
gotoxy(17,13);
scanf("%i",&dur);

   if(horar==1)
      {
      j=680;
         if(dur<=10&&dur>=1)
         {
         j=j+(80*dur);   
         }
            if(dur==0)
            {
            j=680;
            }
      }
   if(horar==2)
   {
   j=800;
         if(dur<=10||dur>=1)
         {
         j=j+(80*dur);   
         }
            if(dur==0)
            {
            j=680;
            }
      }
   if(horar==3)
   {
      j=970;
      if(dur<=10||dur>=1)
         {
         j=j+(80*dur);   
         }
            if(dur==0)
            {
            j=680;
            }
      }
return j;
}


void marco(void)
{
int x,y;
gotoxy(18,5);
textcolor(yellow);
cprintf("bienvenido al salon de eventos maria bonita");
gotoxy(14,6);
cprintf("a continuacion podra calcular el costo de su evento");
for(y=3;y<=23;y++)
      {
      textcolor(8);
      gotoxy(5,y);
      cprintf("%c",176);
      gotoxy(75,y);
      cprintf("%c",176);
      }
for(x=5;x<=75;x++)
      {
      textcolor(8);
      gotoxy(x,3);
      cprintf("%c",176);
      gotoxy(x,23);
      cprintf("%c",176);
      }
}


Título: Re: Necesito ayuda con mi código Los recompensaré
Publicado por: Zodiak98 en 21 Noviembre 2015, 20:16 pm
Código
  1. int main(void)
  2. {
  3. int j; // <-
  4. clrscr();
  5. marco();
  6. horario(0,0);
  7. cprintf("tu costo seria %i",j); // <-
  8. return 0;
  9. }
  10.  

Estás mandando a imprimir por pantalla la variable 'j' cuando a esta no la igualas a ningún valor.


Título: Re: Necesito ayuda con mi código Los recompensaré
Publicado por: 0xFer en 21 Noviembre 2015, 21:44 pm
Como dice Zodiak98, el metodo horario está lanzando un valor pero nadie lo cacha, deberías intentar con:

Código
  1. int j = horario(0,0);