Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Rgpala en 19 Diciembre 2022, 02:29 am



Título: Alguien me puede ayudar con este código? Desconozco por que no funciona
Publicado por: Rgpala en 19 Diciembre 2022, 02:29 am
#include <stdio.h>
#include <stdlib.h>
typedef struct Bodega{
    char Nombre_producto;
    int codigo_barras;
    int cantidad;
    float precio;
}Producto;
int Pedir_cantidad();
Producto Agregar_producto();
void Mostrar_productos(Producto *productos,int Num_productos);
void Mostrar_producto(Producto *productos,int posicion);
int Busqueda(Producto *productos,int Codigo,int contador);

int main()
{
    int Num_productos,eleccion=0,contador_productos=0;
    Num_productos=Pedir_cantidad();
    Producto productos[Num_productos];
    system("cls");
   
    while(eleccion!=4){
    printf("Que deseas realizar");
    printf("1)Agregar producto");
    printf("2)Buscar producto");
    printf("3)Mostrar productos");
    printf("4)Salir");
    scanf("%d",&eleccion);
   
    switch(eleccion){
       case 1:{
           
       if(contador_productos==Num_productos){
           printf("No es posible agregar mas productos");
        }else{
            productos[contador_productos]=Agregar_producto();
            contador_productos++;
        }
       break;
}
       case 2:{
           int buscado,Codigo;
           printf("Dame el numero de barras para encontrar el producto");
           scanf("%d",&Codigo);
           buscado=Busqueda(productos,Codigo,contador_productos);
           if(buscado==-1){
               printf("Producto no encontrado");
           }else{
               Mostrar_producto(productos,buscado);
           }
           break;
           
       }
       case 3:{
           Mostrar_productos(productos,contador_productos);
           break;
       }
       case 4:{
          printf("Adios");
       }
    return 0;
    }
    int Pedir_cantidad(){
        int cantidad;
        printf("Dame la cantidad de productos que deseas agregar a tu tienda");
        scanf("%d",&cantidad);
        return cantidad;
    }
}
    Producto Agregar_producto(){
        Producto articulo;
        printf("Dame el nombre del producto:");
        scanf("%s",&articulo.Nombre_producto);
        printf("Dame el precio del producto:");
        scanf("%f",&articulo.precio);
        printf("Dame la cantidad disponible del producto:");
        scanf("%d",&articulo.cantidad);
        printf("Dame el codigo de barras:");
        scanf("%d",&articulo.codigo_barras);
        return articulo;
    }
void Mostrar_productos(Producto *productos,int Num_productos){
    for(int i=0;i<Num_productos;i++){
        printf("Producto: %disponible",productos.Nombre_producto);
        printf("Precio: %.2f",productos.precio);
        printf("Cantidad disponible: %d",productos.cantidad);
        printf("Codigo de barras: %d",productos.codigo_barras);
        printf("\n");
    }
}
void Mostrar_producto(Producto *productos,int posicion){
        printf("Producto:%d",productos[posicion].Nombre_producto);
        printf("Precio:%.2f",productos[posicion].precio);
        printf("Cantidad disponible:%d",productos[posicion].cantidad);
        printf("Codigo de barras:%d",productos[posicion].codigo_barras);
        printf("\n");
}
int Busqueda(Producto *productos,int Codigo,int contador){
    int i=0;
    for(i;i<contador;i++){
        if(productos.codigo_barras==Codigo){
            return i;
        }
}
return -1;}


Título: Re: Alguien me puede ayudar con este código? Desconozco por que no funciona
Publicado por: Lieutenant McFarley en 19 Diciembre 2022, 09:51 am
PERDÓN, no me di cuenta de que el mensaje estaba duplicado en el foro de C/C++ y contestado aludiendo arreglos dinámicos, malloc, sizeof, free...