Problema con somma elementi array usando funzioni

di il
17 risposte

Problema con somma elementi array usando funzioni

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)

17 Risposte

Devi accedere o registrarti per scrivere nel forum
17 risposte