Problema ordinamento vettore c++

di il
1 risposte

Problema ordinamento vettore c++

Salve a tuttiho un problema, credo sia semplice da risolvere ma io non capisco proprio dove sbaglio;

Il programma parte ma poi si chiude da solo dopo che ho immesso le cordinate del vettore.
#include<stdlib.h>
#include<stdio.h>
#include<iostream>
using namespace std;
typedef int vett[100];
void ordina_vettore(vett,int);
main()
{
int n; vett a;
cout<<"\n\n dimensione? ";cin>>n; 
for(int i=0;i<n;i++){
cout<<"\n\n cordinata "<<i<<" = "; cin>>a[i];};

ordina_vettore(a,n);

for(int j=0;j<n;j++){cout<<"\n\n cordinata ordinata "<<j<<" = "<<a[j];};

system("PAUSE");return 0;
}



void ordina_vettore (vett a,int n)
{ int h;
for(int i=0;i<n;i++){
for(int j=0;i<n;j++){
if (a[j+1]>a[j]){ h=a[j+1]; a[j+1]=a[j]; a[j]=h;} 

}

}
return;
}

1 Risposte

  • Re: Problema ordinamento vettore c++

    Ti mando un file che ho fatto tanti anni fa, dove c'è anche la ricerca dicotomica......
    //richiamo librerie
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    //programma principale
    int main(int argc, char *argv[])
    {
        //dichiarazione variabili
         int v[10];
         int i;
         int dim;
         int appoggio;
         int valore;
         bool trovato=false;
         int sx=0;
         int dx=dim-1;
         
         //chiede la dimensione massima
         do {
             cout<<"Inserisci il numero di elementi (da 1 a 10): ";
             cin>>dim;
             }
             while((dim <1)&&(dim >10));
             
             //per ogni elemento, fa inserire un numero
             for (i=0;i<dim;i++)
                 {
                 cout<<"Inserire un elemento: "<<i<<":";
                 cin>>v[i];
                 }
                 //visualizza il vettore
                 for (i=0;i<dim;i++)
                 {
                     cout<<v[i]<<" ";
                 }
                 cout<<""<<endl;
                 
                 //ordina il vettore in ordine decrescente
             for(i=0;i<dim;i++)
             {
                  for(int j=0;j<dim;j++)
                  {
                       if(v[i]<v[j])
                       {
                            appoggio=v[i];
                            v[i]=v[j];
                            v[j]=appoggio;
                            }
                       }
                  }
                  //stampa vettore ordinato
                  for(i=0;i<dim;i++)
                  {
                       cout<<v[i]<<" ";
                  }
             
        cout<<"Inserire valore da ricercare: ";
        cin>>valore;
        
        do
        {
                    int md=  (sx+dx)/2;
                    if((v[sx]==valore)||(v[dx]==valore)||(v[md]==valore))
                    trovato=true;
                    else
                    if(v[md]<valore)
                    sx=md+1;
                    else
                    dx=md-1;
                    }while((sx<=dx)&&(!trovato));
                    if(trovato==true){
                    cout<<"TROVATO!"<<endl;
                    }
                    else
                    cout<<"NON TROVATO!"<<endl;
             
                    
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
Devi accedere o registrarti per scrivere nel forum
1 risposte