Riporto la soluzione, da me scritta, di un esercizio assegnatomi a lezione.
Concettualmente la soluzione è corretta! Ma il codice riporta i seguenti errori: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); }
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!!

 
			
			 
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando
