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;
}