Ciao ragazzi, purtroppo ho un altro problema per quanto riguarda il calcolo del logaritmo.
Per definizione:
Dati due numeri interi positivi n e b, il logaritmo intero di n in base b è il massimo numero di volte in cui si può moltiplicare b per se stesso ottenendo un risultato non superiore a n.
Il seguente codice che ho scritto non porta ad alcun risultato (non viene proprio emesso l'output, strano vista una printf che comunque dovrebbe emettere qualcosa) e non capisco come mai.
La coppia (921,5), dovrebbe dare come risultato 4, perché 5^4 = 625 che è effettivamente minore di 921, mentre 5^5 = 3125 che è maggiore di 921.
Su queste spiegazioni, cosa c'è di sbagliato nel mio codice?
int n, b, pot = 0, ris, esp, i;
char prova[] = "(921,5)";
sscanf(prova, "(%d,%d)", &n, &b);
esp = 1;
while (pot <= n)
{
for (i = 1; i <= esp; i++)
pot = b*b;
esp++;
}
printf("Il risultato è: %d \n", esp);
Grazie in anticipo a tutti per l'aiuto!