Ho risolto. Innanzitutto grazie ANDPRI per la tempestiva risposta. L'errore sta nel non inizializzare la variabile verificata=0 nella funzione ricorsiva.
riporto il codice giusto cosicché in futuro magari possa essere di aiuto a qualcuno.
#include <stdio.h>
#include <stdlib.h>
int pariedUnMultiploDiTreRic(int *array, int lunghezza, int i){
int verificata=0;
if (lunghezza <=1)
verificata =0;
else {
if (((array[i]) % 2 == 0)&&((array[i+1]) % 2 == 0)){
if(((array[i]) % 3 == 0)||((array[i+1]) % 3 == 0))
verificata=1;
else
verificata=pariedUnMultiploDiTreRic(array,lunghezza,i+1);
}
}
return verificata;
}
int pariedUnMultiploDiTre(int *array, int lunghezza){
int i = 0;
int verifica;
verifica = pariedUnMultiploDiTreRic(array,lunghezza,i);
return verifica;
}
int main(){
int verifica=0;
int lunghezza;
int i;
printf("Salve, sono un programma che trova una coppia blablabla pari e multiplo di tre\n");
printf("quanto sara' lunga la tua stringa?\n");
scanf("%d", &lunghezza);
int array[lunghezza];
printf("itroduci i numeri\n");
for(i=0;i<=lunghezza-1;i++){
printf("inserisci il %d numero: ", i+1);
scanf("%d", &array[i]);
}
int *punt=array;
verifica = pariedUnMultiploDiTre(punt,lunghezza);
if(verifica)
printf("yeah\n");
else
printf("niente da fare ciao\n");
}
[\code]