maquina bebida

Iniciado por moremo, 8 Enero 2017, 20:59 PM

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

moremo

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.




engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

GoKGz

#2
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.
COME AT ME BRAAAAH.

moremo

disculpa pero no me fije en las etiquetas que pusiste,  disculpa mi torpeza, un saludo y gracias.

GoKGz

#4
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.
COME AT ME BRAAAAH.