.exe ha smesso di funzionare

di Anonimizzato24437 il
2 risposte
Scusate se disturbo ma sono alle prime armi e un po inesperto ad un centro punto duranze l'esecuzione si blocca e dice che il file.exe ha smesso di funzionare

#include <iostream>
using namespace std;
const int DIM = 50;

void ins_num(int &x, int min, int max, string a)
{
cout<<"inserire "<<a<<endl;
cin>>x;
while(x<=min||x>max)
{
cout<<"errore, "<<a<<" deve essere compreso tra "<<min<<" e "<<max<<endl;
cin>>x;
}
}

void caricaVet(int vet[], int n)
{
int i;
cout<<"inserire elementi compresi tra -100 e +100"<<endl;
for(i=0;i<n;i++)
{
ins_num(vet, -100, 100, "un numero ");
}
}

void controllo_minori(int vet[], int n, int num, int &n2, int v2[])
{
int i; // MODO ALTERNATIVO
// n2=j; iniziaLIZZANDO J=0 E QUINDI USANDO UNA VARIABILE IN PIU

for(i=0;i<n;i++)
{
if(vet<num)
{
v2[n2]=vet;
n2++;
}
}

if(n2!=0)
{
cout<<"Nella sequenza sono presenti numeri minori al valore inizialmente acquisito"<<endl;
}/*else
cout<<"Nella sequenza NON sono presenti numeri minori al valore inizialmente acquisito"<<endl;
*/
}


void scambia(int &x, int &y)
{
int a;
a=x;
x=y;
y=a;
}


void ordina_vet(int vet[], int n)
{
int i, j;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(vet>vet[j]) //in ordine crescente
{
scambia(vet, vet[j]);
}
}
}
}


void visua_vet (int v[], int n)
{
int i;
cout<<"Elenco degli elementi del vettore: "<<endl;
for (i=0; i<n; i++)
{
cout<<v<<" ";
}
cout<<endl;
}


main()
{
int n, n2, numero;
int vet[DIM];
int v2[DIM];

ins_num(n, 0, DIM, "la numerosita");
caricaVet(vet, n);
cout<<endl;
cout<<endl;

ins_num(numero, -100, 100, " un valore");

controllo_minori(vet, n, numero, n2, v2);

ordina_vet(v2, n2);
visua_vet(v2, n2);

}
[/code][/code]

2 Risposte

  • I tag code non sono inseriti bene

    Potresti essere sicuramente più preciso sulla fase in cui si blocca

    Comunque n2 che valore ha quando la utilizzi?
  • Il tuo programma (molto probabilmente) crasha perché non hai inizializzato n2 in main (dal tuo codice credo volessi che partisse da 0). Quindi lo passi alla funzione controllo_minori e lo usi come indice di array e, poiché non lo hai inizializzato è possibile (certo) che abbia un valore altissimo e quindi accedi ad un indirizzo di memoria non valido e crasha. Altri errori non ne vedo al momento
Devi accedere o registrarti per scrivere nel forum
2 risposte