doubt of recursion

0

I share this code in which it is about entering product data from a store using recursion, well my question is when I use recursion to compare the results on the amounts of each product to tell me what is the the amount that is repeated, I get an error, changing variables I get 0 and other errors directly and I do not know what to do: /

#include<iostream>
#include<conio.h>
using namespace std;
struct inventario{
    char nombreitem[100];
    double unid, precio,unouno;
    int cod;
};
double totalfinal(inventario inven[],int n,double acumulador){
    if(n==0)
        return acumulador;
    else{
        inven[n-1].unouno=inven[n-1].unid*inven[n-1].precio+(inven[n-1].unid*inven[n-1].precio*0.18);
        acumulador +=inven[n-1].unouno;
        return totalfinal(inven, n-1 ,acumulador);
    }   
}
//mostra el monto total que mas se repite con recursivdad
double mostrar(inventario inven[],int n,int cont){
    if(inven[n].unouno==inven[n-1].unouno)
        return cont;
    else{
        cont +=1;
        return mostrar(inven,n,cont);
    }
    cout<<"el numero que se repite es "<<mostrar(inven,n,cont);
}
int egresar(inventario inven[],int n){
    if(n==0)
        return 0;
    else{
    cout<<"Ingrese el nombre del producto "<<endl;
    cin>>inven[n-1].nombreitem;
    cout<<"codigo del producto"<<endl;
    cin>>inven[n-1].cod;
    cout<<"ingrese las unidades "<<endl;
    cin>>inven[n-1].unid;
    cout<<"ingrese el precio unitario "<<endl;
    cin>>inven[n-1].precio;

    cout<<"-----------------------"<<endl;
    return egresar(inven, n-1);
    }
}
/*
void ingresar(inventario inven[],int n){
    for(int i=0;i<n;i++){
    cout<<"Ingrese el nombre del producto "<<endl;
    cin>>inven[i].nombreitem;
    cout<<"codigo del producto"<<endl;
    cin>>inven[i].cod;
    cout<<"ingrese las unidades "<<endl;
    cin>>inven[i].unid;
    cout<<"ingrese el precio unitario "<<endl;
    cin>>inven[i].precio;
    cout<<"-----------------------"<<endl;
    }
}*/

/*
void mostrar(inventario inven[],int n){
    for(int i=0;i<n;i++){
    cout<<"nombre "<<inven[i].nombreitem<<endl;
    cout<<"codigo del producto "<<inven[i].nombreitem<<endl;
    cout<<"num de unidades "<<inven[i].unid<<endl;
    cout<<"precio "<<inven[i].precio<<endl;
    cout<<"------------------"<<endl;
    }
}*/
int mostrarles(inventario inven[],int n){
    double res;
    res=inven[n-1].unid*inven[n-1].precio+(inven[n-1].unid*inven[n-1].precio*0.18);
    if(n==0)
        return 0;
    else{
    cout<<endl;
    cout<<"nombre "<<inven[n-1].nombreitem<<endl;
    cout<<"codigo del producto "<<inven[n-1].nombreitem<<endl;
    cout<<"num de unidades "<<inven[n-1].unid<<endl;
    cout<<"precio "<<inven[n-1].precio<<endl;
    cout<<"uni x precio"<<res<<endl;
    cout<<"------------------"<<endl;
    return mostrarles (inven,n-1);
    }
}
void main(){
    inventario inven[5];
    int n,cont;
    double acumulador=0,t1=0;
    cout<<"Cuantos productos se va a ingresar? ";
    cin>>n;

    cout<<egresar(inven,n);
    cout<<mostrarles(inven,n);
    cout<<endl;
    cout<<mostrar(inven,n,cont);
    cout<<" el precio total es: "<<totalfinal(inven,n,acumulador);
    _getch();
}
    
asked by Marco Ruiz Navarro 07.10.2018 в 01:56
source

0 answers