Riporto la soluzione, da me scritta, di un esercizio assegnatomi a lezione.

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

#define N 10

int *Crea(void);
void Stampa(int *);
int Min(int *; int);
int MaxC(int *; int *; int);
void f(int *);

int main()
{
	int *V = (int *)malloc(sizeof(int)*N);
	V = Crea();
	Stampa(V);
	f(V);
	return 0;
}

int *Crea()
{
	int i;
	int *AUX = (int *)malloc(sizeof(int)*N);
	srand((unsigned)time(NULL));
	for(i=0; i<N; i++)
		AUX[ i] = rand()%25+1;
	return AUX;
}

void Stampa(int *X)
{
	int i;
	for(i=0; i<N; i++)
		printf("%d ", X[ i]);
	printf("\n");
}

int Min(int *V; int i)
{
	int j=0;
	while (j<i)
		if (V[j] < V[ i])
			return 0;
		else
			j++;
	return 1;
}

int MaxC(int *V; int *C; int i)
{
	int j;
	int maxC = -1;
	for(j=0; j<i; j++)
		if (V[ i] > V[j])
			if (C[j] > maxC)
				maxC = C[j];
	return maxC;
}

void f(int *V)
{
	int i;
	int *C = (int *)malloc(sizeof(int)*N);
	for(i=0; i<N; i++)
		if (i==0)
			C[ i] = 1;
		else
			if (Min(V,i) == 1)
				C[ i] = 1;
			else
				C[ i] = 1+MaxC(V,C,i);
	Stampa(C);
}
Concettualmente la soluzione è corretta! Ma il codice riporta i seguenti errori:

gcc -Wall -o "main" "main.c" (nella cartella: /home/peppe/Scrivania/Nuova cartella)
main.c:9:1: error: parameter ‘({anonymous})’ has just a forward declaration
main.c:10:1: error: parameter ‘({anonymous})’ has just a forward declaration
main.c:10:1: error: parameter ‘({anonymous})’ has just a forward declaration
main.c:42:14: error: parameter ‘V’ has just a forward declaration
main.c: In function ‘Min’:
main.c:46:7: error: ‘V’ undeclared (first use in this function)
main.c:46:7: note: each undeclared identifier is reported only once for each function it appears in
main.c: At top level:
main.c:53:23: error: parameter ‘C’ has just a forward declaration
main.c:53:15: error: parameter ‘V’ has just a forward declaration
main.c: In function ‘MaxC’:
main.c:58:7: error: ‘V’ undeclared (first use in this function)
main.c:59:8: error: ‘C’ undeclared (first use in this function)
Compilazione fallita.


Gli errori individuati dal compilatore, a quanto ho capito, sono da ricercare nelle dichiarazioni delle funzioni Min e MaxC...ma non riesco ad individuarli!!