Ciao a tutti, ho creato un programma che dovrebbe sommare gli elementi dispari di un array, che metto qua sotto
//Sommare gli elementi dispari di un array
#include <stdio.h>
#include <stdbool.h>
void leggiArray(int *a, int n){
int i;
printf("Inserisci lunghezza array\n");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("Inserisci elemento %d dell'array\n",i);
scanf("%d",&a[i]);
}
}
bool isDispari(const int *a, int n){
int i;
for(i=0;i<n;i++)
return (a[i]%2)==1;
}
int sommaDisp(int *a, int n){
int i,sD=0;
int *s;
for(i=0;i<n;i++)
if(!isDispari(a,2))
sD+=s[i];
return sD;
}
int main(){
int a,n;
leggiArray(&a,n);
printf("La somma e' %d",sommaDisp(a,n));
return 0;
}
Gli "errori" che mi da sono questi:
array.c:33:36: warning: passing argument 1 of 'sommaDisp' makes pointer from integer without a cast [-Wint-conversion]
printf("La somma e' %d",sommaDisp(a,n));
^
array.c:21:5: note: expected 'int *' but argument is of type 'int'
int sommaDisp(int *a, int n){
Ho provato ad interpretarli, perciò ho cambiato gli argomenti delle funzioni togliendo il *, però a quel punto mi da altri errori..
Come dovrei fare per farlo funzionare? (Le funzioni le devo usare per forza)