Modifiqué le código y ahora no compila. Se traba en la declaración de las funciones.
¿Alguna idea de cual sea el problema?
Código
#include <stdio.h> #include <stdlib.h> /*Declaracion de Variables*/ struct prod{ char nomProd[30]; char fecha[10]; char categoria[20]; float costo; } prod[50];/*Arreglo de tipo estructura*/ int entrada(void); int buscar(void); int precio(void); int salir(void); main() { int c=0, opc, clave; do{ printf ("Abarrotes Bel-Yes - Registro de Productos \n\n"); printf ("Opciones \n"); printf ("1) Registrar producto \n"); printf ("2) Buscar producto \n"); printf ("3) Precio de venta \n"); printf ("4) Salir \n\n"); printf ("Elige una opcion: \n"); scanf ("%d", &opc); switch (opc){ /*Opciones*/ case 1: entrada(); break; case 2: buscar(); break; case 3: precio(); break; case 4: salir(); default: printf ("Esa es una opcion invalida \n"); return 0; break; } while (opc!=4); } /*Declaracion de Funciones*/ int entrada() { int c=0; if (c>=50) printf ("No hay espacio para mas productos en el abarrotes \n"); else { printf ("Ingresa los datos del producto \n"); printf ("Clave %.2d \n", c); printf ("Nombre del Producto: "); fflush (stdin); gets (prod[c].nomProd); printf ("Fecha de Entrada[dd/mm/aa]: "); gets (prod[c].fecha); printf ("Categoria del Producto: "); gets (prod[c].categoria); printf ("Costo del Producto: "); scanf ("%f", &prod[c].costo); c=c+1; } system ("pause"); system ("cls"); } int buscar() { int clave; printf ("Ingresa la clave a buscar [0-50] \n"); scanf ("%d", &clave); while (clave<=50 || clave>0){ printf ("Nombre del Producto: %s \n", prod[clave].nomProd); printf ("Fecha de Entrada: %s \n", prod[clave].fecha); printf ("Categoria: %s \n", prod[clave].categoria); printf ("Costo del Producto: %.2f pesos\n\n\n", prod[clave].costo); system ("pause"); system ("cls"); } } int precio() { int clave; printf ("Ingresa la clave a buscar [0-50] \n"); scanf ("%d", &clave); while (clave<=50 || clave>0){ printf ("Nombre del Producto: %s \n", prod[clave].nomProd); printf ("El precio sugerido de Venta es: %.2f pesos\n\n\n", (prod[clave].costo)*1.30); system ("pause"); system ("cls"); break; }} int salir() { return 0; }