¿Este codigo esta bien? Funcionar, funciona como debe, pero me refiero, a la identacion, al prototipo de las funciones y a las variables globales.
¿Las variables globales estan bien colocadas? ¿Alguna deberia ser estatica y la declare como global? Aun tengo un poco de dudas con respecto a eso.
#include <stdio.h>
void pantallacomprarmanzanas(void);
void pantalla1(void);
void pantallacomprarmanzanas(void); // prototipo de funciones //
int monedas = 50;
int cantidadmanzanas = 5;
int preociomanzanas = 2; // variable que se utilizaran en toda la fucnion //
int cant_eleccion;
enum Accion {COMPRAR, VENDER};
enum Accion manzanas;
int main(void){
while (8 != 5){ /* con esto quiero que el programa no termine nunca */
pantalla1();
switch(manzanas) {
case COMPRAR:
cantidadmanzanas = cantidadmanzanas + cant_eleccion;
monedas = monedas - cant_eleccion * preociomanzanas;
break;
case VENDER:
cantidadmanzanas = cantidadmanzanas - cant_eleccion;
monedas = monedas + cant_eleccion * preociomanzanas;
break;
}
}
}
void inventario(void){
printf("1 - Manz anas = %d \n",cantidadmanzanas);
int eleccion;
scanf("%d", &eleccion);
if (eleccion == 1){pantallacomprarmanzanas();}
}
void pantalla1(void){
system("cls");
printf("Monedas: %d \n",monedas);
inventario();
}
void pantallacomprarmanzanas(void){
printf("Que desea hacer con las manzanaz?\n");
int eleccion;
printf("1 - Comprar\n");
printf("2 - Vender\n");
scanf("%d", &eleccion);
if (eleccion == 1){manzanas = COMPRAR; printf("¿Que cantidad desea comprar?"); scanf("%d",&cant_eleccion); }
else
if (eleccion == 2){manzanas = VENDER; printf("¿Que cantidad desea vender?"); scanf("%d",&cant_eleccion); }
}
(Se podria hacer mucho mas facil con arrays, pero aun no he llegado a ese capitulo del libro)
main debe tener retorno y normalmente debe ser 0
while(1)
los (void) no son necesario, pero si los vas a usas se consistente y colocaselo al main
Cita de: engel lex en 21 Diciembre 2016, 23:55 PM
main debe tener retorno y normalmente debe ser 0
while(1)
los (void) no son necesario, pero si los vas a usas se consistente y colocaselo al main
Creí que era necesario colocar siempre que la función no reciba parámetro, como mi compilador me deja pasar muchas cosas, siento que debo prestar demasiada atención a realizar una correcta estructura.
Con respecto a lo del retorno del main, ¿Te refieres al "return 0"? Crei que era solo para indicarle al sistema que se ejecuto todo correctamente, entonces, como nunca iba a llegar a ese debido al
while (8 != 5)
lo omiti. ¿Como es eso del
while (1)
?
Citar¿Como es eso del
para todo efecto una variable numerica de cualquier tipo, 0 es false, cualquier otro valor es true, no es necesario que hagas al programa calcular esa operación, coloca un 1 y listo, eso se interpretará como true
CitarCon respecto a lo del retorno del main, ¿Te refieres al "return 0"? Crei que era solo para indicarle al sistema que se ejecuto todo correctamente
toda función que no sea void debe llevar return