.exe ha smesso di funzionare

di il
2 risposte

.exe ha smesso di funzionare

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

  • Re: .exe ha smesso di funzionare

    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?
  • Re: .exe ha smesso di funzionare

    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