Problema nel valore di ritorno

di il
4 risposte

Problema nel valore di ritorno

Ciao, allora io devo creare un file “main.c”. Nel file, si deve realizzare la funzione corrispondente alla seguente dichiarazione:
extern char max_pot10 (unsigned int val);
La funzione riceve un valore intero non negativo val e ritorna l’esponente della massima potenza del dieci contenuta in val. Ad esempio se val=123, 100 è contenuto in val, 10^1 è contenuto in val, 10^2 è contenuto in val, 10^3 non è contenuto in val. Quindi la funzione deve ritornare 2 (in altre parole il numero è nell’ordine delle centinaia). Se il numero è 0, la funzione deve ritornare -1. Se ad esempio chiamassimo la funzione inizializzando val a 123456, questa dovrebbe ritornare 5. Però non mi ritorna 5, qualcuno saprebbe dirmi il perchè?
char max_pot10(unsigned int val) {
	if (val == 123) {
		return 2;
	}
	if (val == 0)
		return -1;
}




int main(void) {
	unsigned int val, z;
	val = 123456;

	z = max_pot10(val);
	return 0;
}

4 Risposte

  • Re: Problema nel valore di ritorno

    Nella funzione tu confronti solo il valore 123 e lo 0.

    E tutti gli altri valori?

    Devi scrivere un codice generico, che preveda il calcolo per tutti i valori possibili, a parte lo 0
  • Re: Problema nel valore di ritorno

    Grazie mille, ora ho capito!
  • Re: Problema nel valore di ritorno

    Magari il computer fosse così intelligente da capire tutto quello che tu vuoi che faccia, da un solo esempio...
  • Re: Problema nel valore di ritorno

    Matte ha scritto:


    Grazie mille, ora ho capito!
    E quindi? Come hai risolto?
Devi accedere o registrarti per scrivere nel forum
4 risposte