Autor
|
Tema: Hola soy nuevo en código en C, tengo este código pero no se en que tengo error, me podrían ayudar por favor (Leído 3,521 veces)
|
Fernando13
Desconectado
Mensajes: 3
|
#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]; while(eleccion!=4){ printf("Que deseas realizar"); printf("3)Mostrar productos"); 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"); 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:{ } return 0; } int Pedir_cantidad(){ int cantidad; printf("Dame la cantidad de productos que deseas agregar a tu tienda"); 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 [i ]. Nombre_producto); printf("Precio: %.2f",productos [i ]. precio); printf("Cantidad disponible: %d",productos [i ]. cantidad); printf("Codigo de barras: %d",productos [i ]. codigo_barras); } } 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); } int Busqueda(Producto *productos,int Codigo,int contador){ int i=0; for(i;i<contador;i++){ if(productos[i].codigo_barras==Codigo){ return i; } } return -1; }
MOD: El código debe ir entre etiquetas de Código GeSHi
|
|
« Última modificación: 22 Diciembre 2022, 19:17 pm por K-YreX »
|
En línea
|
|
|
|
whitevision
Desconectado
Mensajes: 3
|
Hola, en que linea te sale el error. Que dice el error, no soy adivino. Salu2.
|
|
|
En línea
|
|
|
|
Fernando13
Desconectado
Mensajes: 3
|
En la penúltima linea, el return -1.
main.c: In function ‘main’: main.c:105:1: error: expected declaration or statement at end of input 105 | return -1;} | ^~~~~~
este es el error.
|
|
|
En línea
|
|
|
|
BloodSharp
Desconectado
Mensajes: 804
El Messi-Vegeta :D
|
Un par de detalles y recomendaciones: No cerraste la función main de manera apropiada, seguramente si identás el código de una manera mejor te ayudaría mucho a evitar este tipo de errores... Por otra parte: int Num_productos, eleccion = 0, contador_productos = 0; Num_productos = Pedir_cantidad(); Producto productos[Num_productos];
Evitá a toda costa generar un vector dinámicamente de esa manera: Si estás forzado a utilizar C puro tenés funciones como malloc o calloc para almacenar memoria dinámicamente y liberandola con la función free. Si podés utilizar C++ te recomiendo utilizar std::vector. Otra recomendación sería nunca retornar objetos de estructuras de variables locales, dado a que se puede pisar los datos con llamadas a otras funciones posteriores: 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; }
Y finalmente: int Pedir_cantidad(); Producto Agregar_producto(); void Mostrar_productos(Producto *productos,int Num_productos); void Mostrar_producto(Producto *productos,int posicion);
Snake case con mayúsculas no es utilizado en nombres de funciones de C... B#
|
|
« Última modificación: 19 Diciembre 2022, 05:09 am por BloodSharp »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Me podrían ayudar a pasar código java a c++ por favor
Dudas Generales
|
vertigo123
|
2
|
4,236
|
2 Diciembre 2013, 13:47 pm
por vertigo123
|
|
|
Hola amigos alguien seria tan amable diciendome que tengo mal en este codigo?
PHP
|
zamik
|
2
|
1,943
|
4 Septiembre 2015, 16:33 pm
por LaThortilla (Effort)
|
|
|
Me Podrian Ayudar con Este Codigo C++ de Autoclick
Programación C/C++
|
streetsicks
|
3
|
3,728
|
18 Mayo 2020, 02:47 am
por streetsicks
|
|
|
Me podrían ayudar con este código. :(
Programación C/C++
|
JasBarrera
|
1
|
2,500
|
2 Mayo 2022, 16:48 pm
por K-YreX
|
|
|
Hola buenas tardes me podrian ayudar con in error ? es este
Programación General
|
Mr.Frost
|
0
|
5,417
|
21 Diciembre 2022, 15:40 pm
por Mr.Frost
|
|