Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    funzione calcolo potenza in c

    Buona sera a tutti, avrei bisogno di un'aiuto devo creare una funzione in c che dati come parametri 2 numeri ( base ed esponente) ne calcoli la potenza, ho provato a fare svariati tentativi ma non sono riuscito a scriverla correttamente.

    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Prova a mostrarcene uno di questi tentativi ... e dicci che "algoritmo" hai cercato di seguire ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    int potenza (int b, int e) {

    int i = 0;

    for (int i ; i < e; i++) {

    b *= b,

    return b;
    }
    }

    l'idea iniziale era di far moltiplicare la base con se stessa tante volta quante era l'esponente...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ok ... l'idea e' giusta ... pero' ...

    1) nella for la sintassi che hai usato non e' corretta ... come va scritta la for? Il valore di partenza di i va nella for ...

    2) b deve essere inizializzato prima di iniziare a moltiplicarlo ... va impostato il valore ad 1 in partenza ...

    3) il valore di b che viene restituito non deve stare all'interno della for, ma esternamente, alla fine della funzione
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    se inizializzo b uguale ad 1 nella dichiarazione dei parametri della funzione mi da un'errore di questo tipo:

    error: expected ';' , ',' , ')' before '=' token

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    30
    non si può inizializzare un parametro nella signature della funzione.. tra l'altro non ne capisco neanche il motivo, se lo inizializzi perdi il valore dato in ingresso quindi il senso del parametro svanisce..


    in linea di massima a una prima occhiata la tua funzione mi sembra ok.. il return, mettilo fuori dal ciclo!!



    nota:
    in C puro le dichiarazioni delle variabili locali devono essere la prima cosa all'interno della funzione.
    dichiara "int i;" all'inizio poi "i" lo inizializzi nella dichiarazione del for.

    codice:
    ...
    int i;
    ....
    for (i=0;i<e;i++){
    ....
    }
    ...

    Se il tuo scopo è imparare a programmare io ti consiglierei di approcciare a una soluzione ricorsiva, molto più elegante e utile a fini didattici.. Sarebbe qualcosa di questo tipo:

    codice:
    int potenza(int b, int e){
    
         if (e == 0)
            return b;
         else 
            return b*potenza(b, e-1);
    
    }
    L'ho buttata lì senza neanche compilarla o provarla, giusto per darti un idea di come potrebbe essere..


    Ciao.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da ferra03
    se inizializzo b uguale ad 1 nella dichiarazione dei parametri della funzione mi da un'errore di questo tipo:

    error: expected ';' , ',' , ')' before '=' token
    Volevo dirti di inizializzare ad 1 una variabile ris e calcolare il risultato in questa variabile ...

    Ovvero

    codice:
    int potenza(int b, int e)
    {
      int i, ris;
    
      ris = 1;
      for(i=0; i<e; i++)
        ris *= b;
    
      return ris;
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    ok ora ho capito grazie mille!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.