Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ -  eseguire la potenza data la base e l'esponente senza utilizzare la funzione pow che invece devo scrivere io
Forum - C/C++ - eseguire la potenza data la base e l'esponente senza utilizzare la funzione pow che invece devo scrivere io

Avatar
Rans (Normal User)
Newbie


Messaggi: 9
Iscritto: 11/11/2018

Segnala al moderatore
Postato alle 12:58
Domenica, 11/11/2018
Codice sorgente - presumibilmente Plain Text

  1.  


#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;
}

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 13:05
Domenica, 11/11/2018
Qual è il problema di preciso?

PM Quote
Avatar
Rans (Normal User)
Newbie


Messaggi: 9
Iscritto: 11/11/2018

Segnala al moderatore
Postato alle 13:07
Domenica, 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
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 15:22
Domenica, 11/11/2018
Testo quotato

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?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:07
Domenica, 11/11/2018
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à.
PM Quote
Avatar
Mikelius (Member)
Expert


Messaggi: 525
Iscritto: 14/04/2017

Segnala al moderatore
Postato alle 16:47
Domenica, 11/11/2018
Testo quotato

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?

PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 700
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 21:48
Domenica, 11/11/2018
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.
PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 23:21
Domenica, 11/11/2018
Testo quotato

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

PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 700
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 1:01
Lunedì, 12/11/2018
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.
PM Quote