Ragazzi mi servirebbe una mano per capire in che modo passare le variabili alle funzioni in modo che esse vengano effettivamente modificate all'interno del corpo; ho provato con i puntatori, ma ho combinato solo casini. Grazie. Ecco il sorgente:

codice:
#include <stdio.h>
#include <stdlib.h>


int partition (int Array[], int p, int r);

void quicksort(int Array[], int p, int r);

void swap (int *b,int *a);

void main()

{

	int k;

	int Array[] = {43,56,0,100,2};

	int p = Array[0];

	int r = Array[4];

	quicksort (Array,p,r);

	for (k=0;k<5;k++)
		
		printf("%d\n\n", Array[k]);


	return;

}




int partition (int Array[], int p, int r)

{

	int x, i, j;
	
	x = Array[p]; 
	
	i = p-1; 
	
	j = r+1;

	while (i < j) {

		while (Array[j--] > x);
				
			while (Array[i++]<x);

				if (i < j)

				{
					swap (&Array[j],&Array[i]);

				}

			}
	
	return(j);


}



void quicksort(int Array[], int p, int r) {

   int q;

   if (p < r) {

	   q = partition (Array, p, r);

	   quicksort (Array, p, r);

	   quicksort (Array, q+1, r);

   }


   return;

}


void swap (int *b,int *a)

{
	int temp;

	temp=*a; 
	
	*a=*b; 
	
	*b=temp;

}