Funzione ricorsiva trova occorrenze

di
Anonimizzato27799
il
3 risposte

Funzione ricorsiva trova occorrenze

Ciao a tutti
Sto provando a risolvere una procedura che mi conta il numero di 1 nell'array ma non riesco a capire perchè finisce fuori dandomi core dump.
#include <stdio.h>
#include <stdlib.h>

int conta(int arr[],int len){
	
	if(len==0) return 0;
	if(arr[len]==1){
		
		return conta(arr,len--)+1;
	}
	else{
		return conta(arr,len--);
	}
	
}
	

int main(){

	int arr[]={1,0,1,4,7,1,3,1};
	int len=8;
	printf("%d",conta(arr,len));
return 0;
}

3 Risposte

  • Re: Funzione ricorsiva trova occorrenze

    Apparte che credo sia molto meglio usare un sizeof() rispetto ad un numero manualmente.

    Ti rispondo con una domanda. Quanto è arr[len]?
  • Re: Funzione ricorsiva trova occorrenze

    Arr[8] non esiste all'inizio quindi dovrei portare la len a 7?
  • Re: Funzione ricorsiva trova occorrenze

    Pabery91 ha scritto:


    Arr[8] non esiste all'inizio quindi dovrei portare la len a 7?
    Sì, ma è corretto che len sia 8. Quindi alla funzione devi passare len - 1
Devi accedere o registrarti per scrivere nel forum
3 risposte