Ciao a tutti,
sto svolgendo un semplice esercizio che effettua la lettura da file di 2 numeri, di cui quello che sta sulla prima colonna rappresenta la base e quello sulla seconda rappresenta l esponente.
Dopo aver letto da file, devo effettuare il calcolo della potenza..
Sto utilizzando anche le struct..
La lettura e stampa a video mi funziona, però il risultato che ritorna la funzione potenza è sempre 1. Qualcuno gentilmente mi sa dire dove sbaglio?
Sotto posto le immagini..:
**** Funzione.h : *****
struct Numeri
{
int b;
int e;
};
typedef Numeri DatiNum[MAX];
void leggistruct(istream &,Numeri &);
void leggidafile(istream &,DatiNum,int &);
void scrivistruct(ostream &, const Numeri &);
void stampastruct(const DatiNum, const int );
int potenza(const Numeri & );
**** Funzione.cpp : *******
void leggistruct(istream & in, Numeri & N)
{
in >> N.b >> N.e;
}
void leggidafile(istream & in, DatiNum D, int & n)
{
in >> n;
for(int i=0;i<n;i++)
{
leggistruct(in,D[i]);
}
}
void scrivistruct(ostream & out, const Numeri & N)
{
out << N.b <<' '<< N.e;
}
void stampastruct(const DatiNum D, const int n )
{
for(int i=0;i<n;i++)
{
scrivistruct(cout, D[i]) ;
cout << endl;
}
}
int potenza(const Numeri & N)
{
int p=1;
int i;
for(i=1;i<=N.e;i++)
p=p*N.b;
return p;
}
******* MAIN : ******
int main () {
Numeri N;
DatiNum D;
int dim,ris;
char filename[MAX];
fstream myfile;
cout<<"Inserire il nome del file: ";
cin.getline(filename,MAX);
myfile.open(filename,ios::in);
if(!myfile) cout<<"Errore in apertura";
else
{
leggidafile(myfile,D,dim);
cout<<"Stampa: "<<endl;
stampastruct(D,dim);
ris = potenza(N);
cout <<"risultato: " << ris;
}
myfile.close();
return 0;
}
Dove sbaglio? Grazie mille a chi mi risponde
Corsi di Laurea
ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.
Accetto l'uso dei cookie