codice:
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM_ELEM 1024
int controlla_somma(int *V, int dim);
int leggi (int V[], unsigned int *dim);
int main(void)
{
int V[MAX_NUM_ELEM];
int dim;
do{
if (leggi(V, &dim) == 1)
printf("la funzione restituisce %d",controlla_somma(V,dim));
} while (leggi(V , &dim) != 0)
return 0;
}
int leggi(int V[], unsigned int *dim)
{
int i;
scanf("%u", dim);
if (*dim <= 0 || *dim > MAX_NUM_ELEM) return 0;
for (i=0; i < *dim; i++) scanf("%d", V+i);
return 1;
}
int controlla_somma(int *V, int dim)
{
int sum_pos=0, sum_neg=0, i=0;
while(i < dim-1){
sum_pos += V[i];
sum_neg += -V[i];
}
if(sum_pos == sum_neg)
return 1;
else
return 0;
}
Il tuo codice era pieno di errori. Comunque * restituisce il contenuto di una cella di memoria e & l'indirizzo, tu passavi alla funzione un'intero e lo trattavi come puntatore.
Prego usare tag CODE e identazione.