Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: bubble sort c++

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    36

    bubble sort c++

    salve a tutti....sto creando questo programmino di riordinamento array...ma non mi da i valori che voglio...potete aiutarmi a capire quale sia l'errore? vi posto il codice:


    #include<iostream>
    #define len 100
    using namespace std;

    int inserimento(int n, int *a){
    cout<<" Quanti elementi vuoi inserire nell'array?";
    cin>>n;
    cout<<"inserimento dei valori"<<endl;
    for(int i=0;i<n;i++){
    cout<<"inserisci il valore ["<<i<<"]"<<endl;
    cin>>a[i];
    }
    return 0;
    }

    int ordinamento(int n,int *a){
    int j,temp =0;
    for(int i=0;i<n;i++)
    {
    for(j=0;j<i;j++)
    {
    if(a[j]>a[i]){
    a[i]=temp;
    a[i]=a[j];
    a[j]=temp;
    }
    }
    }
    return 0;
    }
    int stampa(int n, int *a){
    int i;
    for(i=0;i<n;i++){
    cout<<a[i];}
    return 0;}

    int main(){
    int p,o[len];
    inserimento(p,o);
    ordinamento(p,o);
    stampa(p,o);
    return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    I cicli devono essere:
    codice:
    for(i = 0; i<n-1; i++) {
        for(j=0;j< n -i -1;j++) {
                if(a[j]>a[j+1]){
                temp = a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
    Del resto non ha senso
    codice:
    for(j=0;j<i;j++)
    dato che il ciclo termina al valore di i
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    36
    grazie ma perchè il programma non finisce di eseguire le funzioni che ho scritto?ad esempio la funzione stampa non l'ha proprio presa in considerazione...scusa ma sono alle prime armi...

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    24
    prova un po' a vedere quanto vale p nel main..così non può proprio funzionare...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    36
    p dovrebbe prendere il suo valore con la prima funzione dichiarata nel main....o sbaglio?

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    24
    beh..io il suggerimento di ricontrollarlo te l'ho lanciato...
    Riguarda la parte su puntatori e passaggio di valori alle funzioni

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    36
    in realtà io ho guardato anche altri programmi del genere di altri utenti e a dire la verità mi trovo...solo non riesco a capire perchè il programma si blocca ad un certo punto...

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2013
    Messaggi
    24
    scusa eh...
    nel main fai questa cosa..

    codice:
    int p,o[len];
    inserimento(p,o); 
    e poi in inserimento fai inserire un valore...
    Se conosci un minimo il c mi sai subito dire che nel main p non cambia assolutamente valore..anzi..visto che non è stato inizializzato ne ha uno scelto "casualmente"...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    36
    scusa wolf1792 ma questa cosa come puoi vedere dal codice gia l'ho provata....il c lo conosco e ho questo problema....se fossi stato un maestro non avrei chiesto aiuto...
    ho provato anche ad inizializzare p con un valore nel main ma nulla...dopo l'inserimento dei valori il programma termina stranamente...

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    In effetti, come ti è stato detto, non puoi modificare p se non cambi ... p deve essere passato per puntatore alla funzione inserimento, ovvero

    codice:
    int inserimento(int *n, int *a)
    e quindi al suo interno sarà


    codice:
         cin>>*n;
    e

    codice:
        for(int i=0;i<*n;i++)
    Infine nel main la chiamerai con

    codice:
    inserimento(&p,o);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.