Funzione che calcoli una potenza con esponente intero

di il
1 risposte

Funzione che calcoli una potenza con esponente intero

Ragzzi, scusatemi Non riesco a capire dov è l errore potete aiutarmi a trovarlo o trovarli se sono più di uno?? grazie mille
/* scrivere una funzione che calcoli una qualunque potenza con esponente intero maggiore o uguale a zero */
#include<stdio.h>
#include<stdlib.h>

int potenza (int, int);

int main() {
    
    int numero, esponente;
    char risposta[2];
    double pot;
    risposta[0] = 's';
    
    while(risposta[0] == 's') {
        printf("Dimmi il numero: ");
        scanf("%d", &numero);
        printf("Dimmi l'esponente: ");
        scanf("%d", &esponente);
        
        pot= potenza (numero, esponente);
        
        if(pot == -1)
            printf("Numero non elevato a potenza\n\n");
            else 
                printf("Il numero %d elevato alla %d e':  %d", numero, esponente, potenza);
        
        
        printf("Vuoi continuare (s/n)? :  ");
        scanf("%s", risposta);
    }
system("PAUSE");
return 0;
}

int potenza (int numero, int esponente) {
    int i, p;
    p = numero;
    int pote=1;
    if(esponente<0) return -1;
    if(esponente== 0) return 1;
    if(esponente== 1) return numero;
    if(esponente>1) {
        for(i=1; i<numero; i++) {
         pote =pote*p; 
        }
        return pote;
    }
} 
        
    
    
    
    

1 Risposte

  • Re: Funzione che calcoli una potenza con esponente intero

    Beh, ma non puoi cominciare tu dicendoci se hai errori (e quali) compilando ed eseguendo??

    In ogni caso, la variabile pot deve essere un intero e non un double

    int pot;

    nella visualizzazione devi usare la variabile pot altrimenti a che serve ?

    printf("Il numero %d elevato alla %d e': %d", numero, esponente, pot);

    e la funzione potenza è da rivedere completamente, così
    
    int potenza (int numero, int esponente) {
        int i;
    	int pote=1;
    
    	if(esponente<0) return -1;
        if(esponente == 0) return 1;
        
    	for(i=1; i<=esponente; i++)
            pote = pote*numero; 
    
    	return pote;
    }
    
Devi accedere o registrarti per scrivere nel forum
1 risposte