Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    25

    Problema Funzione Potenza in C ...

    IO ho fatto questa funzione che quando richiamata fa eleva la base per l'esponente...
    ma quando vado a compilare il programma dice che * e + sono deglio operandi binari invalidi...
    Anzi vi posto la foto di tutto quello che dice...



    Potreste dirmi come risolvere ? Grazie in anticipo

    codice:
    /*
     * PROGRAMMA CHE DATI IN INPUT DUE VALORI RAPPRESENTANTI LA BASE E L'ESPONENTE(base, esponente)STAMPLA POTENZA DI base^esponente
     *
     * @author Lonzi Mattia
     * @version 0.1 2012-12-18
     */
    
    #include <stdio.h>
    
    
    
    int potenza(int base, int esponente) {
    	int i = 0;
    
    	while(i <= esponente) {
    		potenza = potenza * base;
    		base = potenza + base;
    		++i;
    
    	}
    
    }
    
    
    
    void main() {
    	printf("INSERIRE BASE: ");
    	scanf("%d\n", &base);
    	printf("INSERIRE BASE: ");
    	scanf("%d\n", &base);
    	printf("potenza di %d^%d: %d\n\n", base, esponente, potenza(base, esponente));
    
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Il problema del tuo programma non è solo degli errori di sintassi, quanto del modo in cui calcoli la elevazione a potenza.

    Non dando per scontato che uno sappia cos'è l'elevazione a potenza (vedi http://it.wikipedia.org/wiki/Potenza_%28matematica%29), se tu definisci la tua funzione come:
    int potenza(int base, int esponente)
    allora devi moltiplicare la base per se stessa tante volte quanto è indicato dall'esponente.
    Cosa che non hai fatto nel tuo programma.

    Ciao.

    EDIT: riguardando il tuo programma se avessi dichiarato:
    int potenza = base;
    all'inizio della funzione e:
    return potenza;
    alla fine
    forse saresti sulla strada.
    La riga: "base = potenza + base;" è sbagliata e non ci vuole.

  3. #3
    Ciao,
    in aggiunta a quanto detto da c0der, se l'indice del ciclo parte da zero si deve fermare a esponente -1, quindi nel while ci vuole il minore stretto e non il minore o guale.

    In oltre negli scanf ti leggi due volte la base ma mai l'esponente.

  4. #4
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Non hai dichiarato le variabili base ed esponente. Non c'è la scanf per la variabile esponente. Nella funzione potenza, la variabile potenza non è dichiarata. E poi per calcolare la potenza sbagli qualcosa. E poi nella funzione non c'è il return.
    Insomma, non so come tu abbia scritto il programma ma ti consiglio di rivedere bene le basi che suppongo tu stia ancora studiando..

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    25
    si lo ho modificato più tardi il programma perchè lo avevo fatto molto alla svelta ...
    comunque ora funziona grazie comunque :/

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 © 2026 vBulletin Solutions, Inc. All rights reserved.