PDA

Visualizza la versione completa : errore in programma c


markusp87
03-02-2008, 04:11
mi segnala un errore "invalid type argument of unary* e non capisco il perke??? qlkn me lo spiega...ora posto il prog...
il prog deve restituire 1 se la sommatoria di valori da i=0 a dim-1 uguale alla sommatoria negativa...
#include <stdio.h>
#include <stdlib.h>
#define MAX_NUM_ELEM 1024

int controlla_somma(int *V,int dim);
int leggi (int V[],unsigned *dim);

int main()
{
int V[MAX_NUM_ELEM],dim;
do{
if (leggi(V,*dim)==1) <----qui segnala errore "invalid type of unary*"
printf("la funzione restituisce %d",controlla_somma(V,dim));
} while (leggi(V,*dim)!=0<----qui segnala errore "invalid type of unary*"
int leggi(intV[],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;
}

menphisx
03-02-2008, 06:39
#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.

:ciauz:

Loading