Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: moremo en 8 Enero 2017, 20:59 PM

Título: maquina bebida
Publicado por: moremo en 8 Enero 2017, 20:59 PM
hola de nuevo compañeros necesito vuestra ayuda nuevamente.
os pongo lo que tengo hecho pero esta mal no me compila, aqui os lo pongo:
#include<stdio.h>
#include<stdlib.h>
void bebida(int)
void monedas(int)
void cambio(int)
int main()
{   int bebida,moneda,valor,acumulador,contador,cambio,a;
int d,v,c,u,ds,e;
d=20;
v=20;
c=20;
u=20;
ds=20;
IN: printf("Escoja bebida:\n");
   printf("pulse 1 para cafe precio: 0,20 euros\n");
   printf("pulse 2 para cocacola precio: 0,50 euros\n");
   printf("pulse 3 para cerveza precio: 0,60 euros\n");
fflush(stdin);
bebida=getche();
switch(bebida)
{
case '1':printf(" ha escogido cafe \n");valor=20;break;
case '2':printf(" ha escogido cocacola \n");valor=50;break;
case '3':printf(" ha escogido cerveza \n");valor=60;break;
default:
system("cls");
void bebida(int valor)
     for(20=0;20<=bebida;20++)
     {
      for(50=0;50<=(bebida-20);50++)
      {
      for(60=0;60<=(bebida*2);60++)
      {
           printf("escojer bebida");
      }
      }
      }
}
   contador=0;
IN1: printf("Introduzca monedas ");
fflush(stdin);
moneda=getche();
switch(moneda)
{
case'a':printf(" ha introducido  0,10 euros\n");moneda=10;d=d+1;break;
case'b':printf(" ha introducido  0,20 euros\n");moneda=20;v=v+1;break;
case'c':printf(" ha introducido  0,50 euros\n");moneda=50;c=c+1;break;
case'd':printf(" ha introducido  1,00 euros\n");moneda=100;u=u+1;break;
case'e':printf(" ha introducido  2,00 euros\n");moneda=200;ds=ds+1;break;
default:
system("cls");
void moneda(int valor)
   for(10=0;10<=moneda;10++)
   {
   for(20=0,20<=(moneda-10);20++)
   {
   for(50=0;50<=(moneda*2);50++)
   {
   for(100=0;100<=(moneda*3);100++)
   {
   for(200=0;200<=(moneda*4),200++)
   {
    printf("valor bebida");  
   }
   }
   }
   }
   }            
}
IN2:
{
contador=contador+moneda;
   if(valor>contador) void moneda;
}
printf("%d\n",contador);
   if(valor==contador)
       {
        printf("Ha introducido un total de: %d centimos\n",contador);
        fflush(stdin);
           }
if(contador>valor)
       {    
      e=contador-valor;
           }
printf("Su cambio es de: %d centimos.\n",e);
if(e>=200)
       {
    ds=ds-1;
    e=e-200;
   }
if(e<200 && e>100)
       {
                     u=u-1;
     e=e-100;
  }
if(e<100 && e>50)
       {
      c=c-1;
                      e=e-50;
}
if(e<50 && e>20)
       {
      v=v-1;
      e=e-20;
}
   if(e<20 && e>=10)
       {
            d=d-1;
            e=e-10;
}
       printf("Recoja su producto. Gracias \n");
       printf("de diez %d\n",d);
       printf("de veinte %d\n",v);
       printf("de cincuenta %d\n",c);
       printf("de un euro %d\n",u);
       printf("de dos euros %d\n\n",ds);
if(d!=0 && v!=0 && c!=0 && u!=0 && ds!=0) void bebida;
 return 0;      
}

tenia que cambiar donde estaba el goto por void y que me hiciera lo mismo.
a ver si alguien me puede ayudar espero haberme explicado bien.



Título: Re: maquina bebida
Publicado por: engel lex en 9 Enero 2017, 00:03 AM
los codigos deben ir en etiquetas GeSHi, ya te he modificado 3 veces y te lo he advertido yo y otro usuario... por favor apegate a las reglas
Título: Re: maquina bebida
Publicado por: GoKGz en 9 Enero 2017, 00:46 AM
Hola.

Hay muchos errores en tu código, deberías leerte o ver algún video tranquilo.
Seguro podés solucionarlo sólo, no es tan difícil lo que estás haciendo (o por lo menos eso parece), creo que tenés una mala base, ese es todo tu problema.

Encima que no dejás mucha información sobre lo que estás tratando de hacer.
Cualquier duda, comentála.

Siempre es recomendable seguir esta estructura:

Código de ejemplo:

int main (void){

int a = 20;
int i;

if (a == 10 ){
printf ("Prueba.\n");
}

for (i=0; i<a; i++){
for (j=0; j<a; j++){
printf ("Se lee mejor el código, está más prolijo.\n");
if (a){
prinf ("Es verdad.\n");
}

}
}

return 0;
}

Deja una tabulación o una separación con dos esapcios después de cada condición que se cumple.
No sé si se entiende.

Saludos.
Título: Re: maquina bebida
Publicado por: moremo en 9 Enero 2017, 12:12 PM
disculpa pero no me fije en las etiquetas que pusiste,  disculpa mi torpeza, un saludo y gracias.
Título: Re: maquina bebida
Publicado por: GoKGz en 9 Enero 2017, 13:30 PM
Empezamos por acá:


void bebida(int)
void monedas(int)
void cambio(int)


Faltan todos los ;

     for(20=0;20<=bebida;20++)
     {
      for(50=0;50<=(bebida-20);50++)
      {
      for(60=0;60<=(bebida*2);60++)
      {
           printf("escojer bebida");
      }
      }
      }
}


Eso está mal hecho, deberías verte un video de estructuras de control para C. Acordate siempre segui la recomendación que te dije:

for(20=0;20<=bebida;20++)
{
 for(50=0;50<=(bebida-20);50++)
 {
    for(60=0;60<=(bebida*2);60++)
    {
      printf("escojer bebida");
    }
 }
}


Igual sigue estándo mal, ¿qué es eso de 20=0, 10++?
Está mal, ponte a investigar seguro lo resuelves.

Y me parece que también tenés un error en la resolución de tu problema pero eso ahora no es lo importante.
Aprendé esto, mirate todos los videos o lee un libro como quieras:

https://www.youtube.com/watch?v=GRrqJEgtpa0

Creo que después de ver todos esos videos, deberías empezar a programar desde 0 tu "maquina de bebida"

Saludos.