Rans (Normal User)
Newbie
Messaggi: 9
Iscritto: 11/11/2018
|
Codice sorgente - presumibilmente Plain Text |
#include <stdio.h>
int pot(int b, int e);
main(void){
int b, e, potenza;
char scelta;
do{
printf("\n Inserisci base ed esponente: ");
scanf("%d%d",&b,&e);
potenza=pot(b,e);
printf("%d elevato a %d=%d",b,e,potenza);
printf("\n\n");
}
int pot(int b, int e)
{
int potenza=b, i;
for(i=0;i<e;i++)
potenza=potenza*b;
}
|
|
lumo (Member)
Expert
Messaggi: 449
Iscritto: 18/04/2010
|
Qual è il problema di preciso?
|
|
Rans (Normal User)
Newbie
Messaggi: 9
Iscritto: 11/11/2018
|
@lumo devo fare la potenza data la base e l'esponente senza usare la funzione pow già presente nella libreria math.h bensì devo scrivere io una funzione (che è uguale alla pow dunque).
Ultima modifica effettuata da Rans il 11/11/2018 alle 13:11 |
|
lumo (Member)
Expert
Messaggi: 449
Iscritto: 18/04/2010
|
Postato originariamente da Rans:
@lumo devo fare la potenza data la base e l'esponente senza usare la funzione pow già presente nella libreria math.h bensì devo scrivere io una funzione (che è uguale alla pow dunque). |
Ad occhio mi pare giusta la funzione che hai scritto, forse non ti va la scanf per prendere i due numeri? Prova a prendere prima base ed esponente, usando due scanf.
Il codice ti compila? Riesci ad eseguirlo? |
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
No, quel codice non va per niente bene.
L'hai mai compilato e controllato gli errori?
Per cominciare manca una
return potenza;
nella funzione, ma anche nel main il ciclo non è chiaro e manca una parentesi alla fine ...
Ultima modifica effettuata da nessuno il 11/11/2018 alle 16:08
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
Postato originariamente da nessuno:
No, quel codice non va per niente bene.
nella funzione, ma anche nel main il ciclo non è chiaro e manca una parentesi alla fine ... |
L'idea di fondo è giusta (usare un for), ma è implementata malissimo.
Come scrive nessuno, manca un return,
nel ciclo manca direttamente il while per la condizione d'uscita del ciclo stesso, ecc
Dopo si può passare a corregerlo matematicamente
visto che effettua una moltiplicazione in più rispetto al dovuto
oppure a verificare se 'b' o 'e' siano negativi o '==0'.
Il compilatore che errori segna?
|
|
AldoBaldo (Member)
Guru
Messaggi: 700
Iscritto: 08/01/2015
|
Ma... se sto usando int, com'è possibile calcolare una potenza con esponente negativo dando un risultato anche minimamente attendibile? Non viene sempre fuori zero? I miei ricordi del liceo sono sempre più appannati.
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti. |
|
lumo (Member)
Expert
Messaggi: 449
Iscritto: 18/04/2010
|
Postato originariamente da AldoBaldo:
Ma... se sto usando int, com'è possibile calcolare una potenza con esponente negativo dando un risultato anche minimamente attendibile? Non viene sempre fuori zero? I miei ricordi del liceo sono sempre più appannati. |
All'incirca, ma suppongo che la consegna implicitamente parli di potenze positive di numeri interi |
|
AldoBaldo (Member)
Guru
Messaggi: 700
Iscritto: 08/01/2015
|
L'ho IMMAGINATO anch'io, ma senza il testo letterale dell'esercizio è giusto una supposizione (probabilmente giusta).
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti. |
|