Salve ragazzi ,
sono intrappolato in questo esercizio:
#include <stdio.h>
#include <stdlib.h>
int somma (int *);
int main (void)
{
int n, i;
int *vett;
int x;
printf("Dimmi quanti valori vorresti sommare: ");
scanf("%d", &n);
vett = (int *) malloc(n * sizeof(int));
printf("Dammi questi valori: \n");
for (i=0; i< n; i++){
scanf("%d", &vett[i]);
}
x = *vett;
printf("La somma vale: %d", somma (&x));
free (vett);
return 0;
}
int somma(int *v)
{
int a;
int *ris = 0;
a = *v;
*ris = somma (a ) + somma (*(a+1));
return *ris;
}
Gli errori sono questi:
gcc -Wall -o"somma_ricorsiva" "somma_ricorsiva.c" -lm (nel direttorio: /home/antonio/Documenti)
somma_ricorsiva.c: In function ‘somma’:
somma_ricorsiva.c:38:2: warning: passing argument 1 of ‘somma’ makes pointer from integer without a cast [enabled by default]
*ris = somma (a ) + somma (*(a+1));
^
somma_ricorsiva.c:32:5: note: expected ‘int *’ but argument is of type ‘int’
int somma(int *v)
^
somma_ricorsiva.c:38:29: error: invalid type argument of unary ‘*’ (have ‘int’)
*ris = somma (a ) + somma (*(a+1));
^
Compilazione fallita.
vi prego aiutatemi
Allegati: