Problema programma

di il
5 risposte

Problema programma

Salve, ho realizzato il seguente programma, ma le printf che ho messo in evidenza mi restituiscono valori diversi tra di loro ,come posso rimediare?Grazie.


#include <stdio.h>
#include <stdlib.h>

int Calcola_la_potenza(int dividendo,int esponente);
int Calcola_Resto(int potenza,int divisore);
void Stampa_Resto(int resto);

int main()
{
    int dividendo,esponente,divisore,resto,potenza;
    printf("Programma per calcolare il resto di una divisione\n");
    printf("Inserisci il dividendo: ");
    scanf("%d",&dividendo);
    printf("Inserisci l'esponente se presente altrimenti metti uno: ");
    scanf("%d",&esponente);
    printf("Inserisci il divisore: ");
    scanf("%d",&divisore);
    if (divisore<=dividendo){
       Calcola_la_potenza(dividendo,esponente);
       Calcola_Resto(potenza,divisore);
       Stampa_Resto(resto);
    }
    else
         printf("non puoi inserire un divisore piu' grande del dividendo");

    return 0;
}

int Calcola_la_potenza(int dividendo,int esponente)
{
    int i=0;
    int potenza=1;
    while (i<esponente){
        potenza=(potenza*dividendo);
        i++;
    }
    printf("potenza %d\n",potenza);  <<--------------------------
    return potenza;
}

int Calcola_Resto(int potenza,int divisore)
{
     int quoziente,moltiplicazione,resto;
     printf("potenza %d\n",potenza);  <<-------------------------
     quoziente=(potenza/divisore);
     printf("quoziente %d\n",quoziente);
     moltiplicazione=(quoziente*divisore);
     printf("moltiplicazione %d\n",moltiplicazione);
     resto=(potenza-moltiplicazione);
     return resto;
}

void Stampa_Resto(int resto)
{
    printf("Il resto e': %d",resto);

    return;
}

5 Risposte

  • Re: Problema programma

    potenza = Calcola_la_potenza(dividendo,esponente);
    resto = Calcola_Resto(potenza,divisore);
  • Re: Problema programma

    Grazie, ora funziona ,ma perchè è stato necessario specificare l'output delle funzioni? il "return potenza" non dovrebbe bastare?
  • Re: Problema programma

    E il return DOVE ritorna il valore se non usi una variabile?

    Come fa la prima funzione a sapere che il risultato deve andare in potenza? E come fa la seconda a sapere che il risultato va in resto?

    Sono computer, non maghi
  • Re: Problema programma

    thomas99 ha scritto:


    Grazie, ora funziona ,ma perchè è stato necessario specificare l'output delle funzioni? il "return potenza" non dovrebbe bastare?
    Il tuo è un errore abbastanza comune, a quanto pare: potenza del main e potenza di Calcola_la_potenza non sono la stessa variabile, anche se gli hai dato lo stesso nome. Prova con nomi diversi
  • Re: Problema programma

    Ok ... devi ripassare il concetto di variabile locale e anche come lavora una funzione....
Devi accedere o registrarti per scrivere nel forum
5 risposte