Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C] Programma funzionante ma va crash: ordinamento di un vettore con bubblesort

    Ciao a tutti, come da titolo, ho sviluppato un programma C che ordina un vettore di interi. Il programma funziona correttamente ma, arrivato alla fine dell'ordinamento, il programma si blocca (ripeto, pur mostrando il vettore ordinato). Qualcuno potrebbe dirmi dove è l' errore? Grazie in anticipo.

    codice:
    #include <stdio.h>#include <stdlib.h>
    #define max 10
    
    
    void scambia (int array[], int x, int z){
        int tmp;
        
        tmp=array[x];
        array[x]=array[z];
        array[z]=tmp;
    }
    
    
    void bubblesort (int array[], int dim, int i){
        int x, z;
        for(x=1;x<dim;x++){
            for(z=dim-1;z>=x;z--){
                if (array[z-1]>array[z]){
                    scambia (array, z-1, z);
                }
            }
        }
            printf("\nArray dopo l'ordinamento... ");
        for(i=0;i<dim;i++){
            printf("%d ", array[i]);
        }
        printf("\n");
    }
    
    
    int main (){    
        int array[max];
        int dim=0;
        int i=0;
        int x,z;
        
        printf("\nQuanti numeri vuoi inserire? ");
        scanf("%d",&dim);
        for(i=0;i<dim;i++){
            printf("\nInserisci %do numero: ", (i+1));
            scanf("%d", &array[i]);
        }
        
        printf("\nMostro i numeri dell'array (prima dell'ordinamento): ");
        for(i=0;i<dim;i++){
            printf("\n%d ", array[i]);
        }
        printf("\n");
        
        printf("\nOrdino i numeri... ");
        bubblesort (array, dim, i);
        scambia (array, x, z);
    
    
        printf("\n");
        system ("pause");
        return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Che ci fa la linea

    scambia (array, x, z);

    nel main?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    E' la "seconda parte" della funzione di ordinamento.

    Ho provato ad eliminarla e il programma non va più in crash, in effetti chiamandola già nella funzione bubblesort non c'era bisogno di richiamarla nel main... Grazie mille

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Seconda parte? Non esiste una seconda parte. Quella è la funzione di scambio da chiamare esclusivamente dentro la funzione di ordinamento.
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.