Título: Problema al leer caracteres [C]
Publicado por: S4ms3pi0l__ en 16 Noviembre 2017, 18:45 pm
El problema que tengo es, que sólo imprime el nombre del primer producto con el código registrado, a la hora de buscar los demás códigos, me envía el mensaje que "No existe" cuando no es así. Aquí les dejo el código:#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> void menu(); void menu(){ printf("\t*****CONTROL DE INVENTARIO*****\n"); printf("1.-Listado del inventario actual\n2.-Busqueda de productos\n3.-Ingresos totales\n4.-SALIR\n"); printf("--------------------------------\n"); } void salida(); void salida(){ printf("Saliendo del programa... Hasta pronto!\n"); } struct Inventario{ char codigo[10]; char nombre[25]; int cantidad; float pventa; }; int Registrar(Inventario x[], int i); int Registrar(Inventario x[], int i){ for(i=0;i<=2;i++){ printf("\tRegistrar productos\n"); printf("Ingrese el codigo del producto: "); printf("\nIngrese el nombre del producto: "); do{ printf("\nIngrese la cantidad: "); scanf("%d",&x [i ]. cantidad); }while(x[i].cantidad<=0); do{ printf("\nIngrese el precio de venta: "); scanf("%f",&x [i ]. pventa); }while(x[i].pventa<=0); } } void Lista(int i, Inventario x[]); void Lista(int i, Inventario x[]){ for(int j=0;j<=2;j++){ printf("%s \t %s \t %d \t %0.2f \n",x [j ]. codigo, x [j ]. nombre, x [j ]. cantidad, x [j ]. pventa); } } /*Aqui esta el problema*/ void Busqueda(char cod[10], Inventario x[], int i); void Busqueda(char cod[10], Inventario x[], int i){ printf("Ingrese el codigo que desea buscar: "); for(int j=0;j<=2;j++){ if(strcmp(x [j ]. codigo,cod )==0){ printf("\nProducto: %s \n",x [j ]. nombre); break; }else{ break; } } } /* */ float Venta(Inventario x[], int i); float Venta(Inventario x[], int i){ float total; for(int j=0;j<=2;j++){ total+=x[j].cantidad*x[j].pventa; } printf("Ingreso total: %0.2f \n",total ); } int main(){ struct Inventario prod[20]; int i=0, op; char cod[10]; bool salir = true; Registrar(prod,i); do{ menu(); do{ printf("\nSeleccione una opcion: "); }while(op<=0 || op>=5); switch(op){ case 1:{ printf("\tINVENTARIO ACTUAL\n"); Lista(i,prod); break; } case 2:{ Busqueda(cod, prod, i); break; } case 3:{ printf("\tVENTA TOTAL DEL INVENTARIO\n"); Venta(prod, i); break; } case 4:{ salida(); salir = false; break; } } }while(salir==true); return 0; }
Título: Re: Problema al leer caracteres [C]
Publicado por: MAFUS en 16 Noviembre 2017, 22:13 pm
No hace falta que declares una función si la defines acto seguido. Es rellenar código sin importar. Es decir: void f1(); void f1(){ // ... } void f2(); void f2(){ // ... }
No tiene ningún sentido más que hacer más grande el código fuente.
|