Salve a tutti
non ho ben capito quando e come usare una funzione con void, in generale e rispetto a quelle a una uscita (int/float/bool)
vi spiego meglio: ho scritto un programma semplice che calcola modularmente una potenza inserendo da tastiera base ed esponente; con una semplice funzione di interi il giochino funziona bene;
adesso per provare a capire come lavorare su funzioni void (hanno un nome specifico?) ho provato a cambiare leggermente il pezzo di codice dove definisco la funzione e poi il suo richiamo nel main.
la funzione viene compilata ma a quanto pare il suo richiamo è sbagliato.
non essendo in grado di compilare non posso nemmeno sapere se effettivamente funziona, quindi chiedo una mano a voi
vi incollo entrambe le stringhe
#include <iostream> //funzionante
using namespace std;
int potenza (int base,int esp)
{int pot=1;
for (int i=1; i<=esp; i++)
pot=pot*base; return pot;
}
int main ()
{int b,e;
cout<<"inserire base ed esponente"<<endl;
cout<<"base="; cin>>b;
cout<<"esponente="; cin>>e;
int risultato=potenza(b,e);
cout<<"risultato=";
cout<<risultato;
}
#include <iostream>
using namespace std;
void potenza (int base,int esp, int& pot)
{pot=1;
for (int i=1; i<=esp; i++)
pot=pot*base;
}
int main ()
{int b,e;
cout<<"inserire base ed esponente"<<endl;
cout<<"base="; cin>>b;
cout<<"esponente="; cin>>e;
cout<<"risultato=";
int risultato = potenza(b,e,risultato); //<- in questa riga il compilatore mi segnala errore
cout<<risultato; // "void value not ignored as it ought to be"
}
grazie dell'aiuto