Salve, qualcuno può aiutarmi?
questo programma dopo aver superato la compilazione va in errore durante l'esecuzione. (Devo mantenere tutte le funzioni ricorsive).
Grazie in anticipo.
#include <iostream>
#include "ri.h"
using namespace std;
int main()
{
int n,i,j,c,num;
cout<<"Quanti numeri vuoi inserire?\n";
cin>>n;
int ing[n];
int u[n];
i=0;
inserisci(ing, n, i);
i=0;
j=i+1;
ordina(ing, n, i, j);
cout<<ing[0];
cout<<ing[1];
cout<<ing[2];
i=0;
j=0;
c=0;
cout<<"\nChe numero vuoi cercare?\n";
cin>>num;
cerca(ing, u,n,i,j,c, num);
if (c!=0)
{
i=0;
stampa (u,c,i);
}
else
{
cout<<"Non e' presente mi dispiace\n";
}
system("pause");
return 0;
}
#include <iostream>
#include "ri.h"
using namespace std;
void inserisci(int v[], int n, int &i)
{
if (i<n)
{
cout<<"\nDammi un numero\n";
cin>>v[i];
i++;
inserisci(v,n,i);
}
}
//------------------------------------------------------------------------------------------------------------
void ordina(int v[], int n, int &i, int &j)
{
int a;
if (i<n-1)
{if (j<n)
{
if (v[i]>v[j])
{
a=v[i];
v[i]=v[j];
v[j]=a;
}
}
j++;
ordina (v,n,i,j);
}
else
{
i++;
j=i+1;
ordina (v,n,i,j);
}
}
//----------------------------------------------------------------------------------------------------------
void cerca (const int ing[], int u[], int n, int &i, int &j, int &c, int num)
{
if (i<n)
{
if (num ==ing [i])
{
u[j] = i;
c=c+1;
j=j+1;
i=i+1;
cerca (ing, u, n, i, j, c, num);
}
else {
i=i+1;
cerca (ing, u, n, i, j, c, num);
}
}
}
//---------------------------------------------------------------------------------------------------------------------
void stampa (const int u [], int &c, int &i)
{
if (i<c)
{
cout << u[i];
i++;
stampa (u,c,i);
}
}
void inserisci (int [], int, int &);
void ordina (int[], int, int &, int &);
void cerca (const int[], int[], int, int &, int &, int &, int);
void stampa (const int[], int &, int&);