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();
}