Salve a tutti, riesco a ordinare un array monodimensionale ma non capisco proprio perchè non riesca a ordinare un array tridimensionale. Si blocca in fase di runtime e non capisco proprio il motivo
Vi posto il codice..
PS ho creato una funzione che mi inizializza i dati di input
codice:#include <stdio.h> #include <stdlib.h> #include <time.h> #ifdef _WIN32 #include <windows.h> #define MAX_CIFRE 4 // numeri compresi tra 0 e 999 #define RADICE_SIZE 10 #define IS_FULL(ptr) (!ptr) #define IS_EMPY(ptr) (!ptr) #define MAX 5000 #define MAX_CIFRE 4 // numeri compresi tra 0 e 999 #define RADICE_SIZE 10 #define IS_FULL(ptr) (!ptr) #define IS_EMPY(ptr) (!ptr) #define ITERAZIONI 7 #define DIMENSIONE_MAX_LISTA 5000 typedef struct list_node *list_pointer; typedef struct list_node { int chiave[MAX_CIFRE]; list_pointer link; }lista; int dimensioni[]= {50,100,200,500,1000,2000,5000}; void creazione_dati (int testa[][ITERAZIONI][DIMENSIONE_MAX_LISTA]); void scambia(int *x,int *y); void sort_inserzione(int lista[][ITERAZIONI][DIMENSIONE_MAX_LISTA],int m,int n); main(){ randomize(); printf("\nEsercitazione numero 23\n"); int i,j,k; int testa[4][7][DIMENSIONE_MAX_LISTA]; //**************************************************************************** //**************************************************************************** //**************************************************************************** //*************************ORDINAMENTO PER SELEZIONE************************** //**************************************************************************** //**************************************************************************** //**************************************************************************** creazione_dati (testa); //### ARRAY ORDINATO #################################################*SELEZIONE for(i=0;i<50;i++)printf("testa[0][0][i]"); for(i=0;i<4;i++) for(j=0;j<7;j++) sort_inserzione(testa,i,j); for(i=0;i<50;i++)printf("testa[0][0][i]"); } void sort_inserzione(int lista[][ITERAZIONI][DIMENSIONE_MAX_LISTA],int m,int n) { int i,j; int prossimo; n = dimensioni[n]; for(i=1;i<n;i++) { prossimo=lista[m][n][i]; for(j=i-1;j>=0 && prossimo<lista[m][n][j];j--) lista[m][n][j+1] = lista[m][n][j]; lista[m][n][j+1] = prossimo; }


Rispondi quotando