Salve ragazzi ho un problema con questo codice con ordinamento a bolle!! In pratica quando inserisco gli elementi nel vettore, esempio:
dammi riemp: 3
Ins elem 1 : 3
/ / / 2: 2
/ / / 3: 1
quando stamap il vettore ordinato stampa 0 1 2!!! Non ho capito perchè sinceramente!! Allego il codice!
codice:#include<iostream> #include<cstdlib> #include<iomanip> using std::setw; using namespace std; void AddItems(int a[],int n){ for(int i=0;i<n;i++){ cout<<"inserisci elemnto n. "<<i+1<<": "; cin>>a[i]; } cout<<"Il vettore caricato e': "; for(int i=0;i<n;i++){ cout<<setw(4)<<a[i]; } return ; } void ordina (int a[],int n){ int hold; for( int pass=1;pass<=n;pass++){ for(int i=0;i<=n-1;i++){ if(a[i]>a[i+1]){ hold=a[i]; a[i]=a[i+1]; a[i+1]=hold; } } } return ; } void stampa(int a[],int n){ cout<<"\nIl vettore ordinato vale: "; for(int i=0;i<n;i++){ cout<<setw(4)<<a[i]; } return; } int main(){ int n; cout<<"dammi il riemp.: "; cin>>n; int a[n]; AddItems(a,n); ordina(a,n); stampa(a,n); return 0; }

Rispondi quotando
