[C] Funzione ricorsiva

nick_10
Ciao a tutti! Devo risolvere questo esercizio:
Scrivere una funzione ricorsiva C che,
• preso in ingresso un intero positivo k,
• legga da linea di comando (senza memorizzarla) una sequenza di interi positivi che termina quando la somma dei valori immessi supera strettamente k (l’ultimo numero non fa parte della sequenza), e
• restituisca il numero di interi immessi.
Io ho provato a scrivere questo:
int contaric(int k){
    int n;
    scanf("%d",&n);
    if(n>k) return 1;
    else return 1+contaric(k-n);
}

Il problema è che conta anche l'ultimo numero immesso che non dovrebbe far parte della sequenza. Come posso migliorarlo?

Risposte
Super Squirrel
Con if(n>k) return 1;, sei tu che gli stai dicendo di contare anche l'inserimento che determina il superamento di k.

nick_10
Grazie mi vergogno quasi per la svista...bastava un return 0
Grazie mille :)

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.