[C] Funzione ricorsiva
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:
Il problema è che conta anche l'ultimo numero immesso che non dovrebbe far parte della sequenza. Come posso migliorarlo?
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
Con if(n>k) return 1;, sei tu che gli stai dicendo di contare anche l'inserimento che determina il superamento di k.
Grazie mi vergogno quasi per la svista...bastava un return 0
Grazie mille
Grazie mille
