PDA

Visualizza la versione completa : [C++] Conteggio numero occorrenze valore in un vettore, realizzazione con procedura


pongo
26-12-2013, 13:23
Non riesco a capire cosa non va in questo codice, viene compilato ma va in crash...




#include <iostream>

using namespace std;

void cerca_occorrenze(int v[], int x, int n, int pos[], int nocc)
{
int i;
nocc=0;
for(i=0;i<n;i++)
{
if(v[i]==x)
pos[nocc++]=i;

}
cout<<"Numero " <<x <<"trovato in posizione ";
for(i=0;i=nocc;i++)
{
cout<<pos[i]<<" ";
}
return;
}
int main()
{
const int m=100;
int nocc;
int pos[m];
int x;
int k;
int n;
int vet[n];
cout<<"How many values do you want to insert in the array?";
cin>>n;
cout<<"Please insert the values: ";
for(k=0;k<n;k++){
cin>>vet[k];
}

cout<<"Do you want to know in what position you have inserted a number?"<<"Write the number: ";
cin >>x;

cerca_occorrenze(vet,x,n,pos,nocc);

return 0;


}

oregon
26-12-2013, 14:14
Queste linee

int n;
int vet[n];

non hanno senso.

All'inizio del programma non sai quanto vale n e quindi il vettore non ha dimensioni corrette.

Ti ricordo che le istruzioni in un programma sono eseguite sequenzialmente, non puoi indicare il numero di elementi in un vettore prima di avere acquisito in input tale numero.

pongo
26-12-2013, 14:44
Ok grazie per avermelo ricordato :) E' sbagliato anche il ciclo for mi sono accorto, aniziché l'uguale ci va il minore, per il resto sembra tutto ok.

oregon
26-12-2013, 14:50
sembra tutto ok.

Quindi adesso funziona?

pongo
26-12-2013, 15:49
sì sì aggiustando quel ciclo nella procedura è tutto ok, certo si potrebbe organizzare meglio, però stampa le posizioni in cui si trova il valore all'interno dell'array.

Loading