Ho un dubbio sullo svolgimento di questo esercizio:
"Si scriva in C una funzione ricorsiva che legge in input una sequenza di interi che termina quando viene immesso zero (che non fa parte della sequenza), e restituisce true se il prodotto di tutti gli elementi letti è un intero positivo, altrimenti restituisce false, senza utilizzare la moltiplicazione".
Io ho fatto il seguente codice
- Codice:
#include <stdio.h>
typedef enum {false, true} boolean;
boolean ric(){
int neg=0,m;
scanf("%d",&m);
if(m!=0){
if(m<0) neg=1+ric();
else neg=ric();
}
if((neg%2==0)) return true;
else return false;
}
La mia idea è quella di contare i numeri negativi che appaiono nella sequenza e poi verificare la sua parità.
Però non funziona