ASA200
18-03-2003, 21:01
Salve a tutti! Intanto mi scuso per le violenze che ho fatto verso il povero c++ nel programma che segue, ma sono davvero alle prime armi ;) ! Il problema è che invece di restituire stringhe con il nome del file mi mette a video un singolo carattere strano per ogni nome di stella :muro: . cosa c'è che non va? Grazie!
#include <iostream.h>
#include <cmath>
int k=8;
class star
{ double mg;
double dist;
char str[8];
public:
star (char n[k], double m, double d );
double reall();
char getstra(){ return str[8];};
};
double star::reall()
{
return ((mg+5)-(5*log10(dist/3.26)));
}
star::star (char n[k] , double m, double d )
{
str[8]= n[k] ;
mg = m;
dist = d;
}
int main()
{
int i=0;
star cost[6]=
{
star ( "sirius" , -1.4 , 8.7),
star ( "Arturus" , -0.06 , 37),
star ( "Vega" , 0.04 ,27),
star ( "Capella" , 0.06 , 45),
star ( "Sun" , -27 , 0.000015749196),
star ( "Rigel" , -0.14 , 750),
};
for (i=0;i<6;i++)
{cout<<" Rmg "<<cost[i].getstra()<<" = "<<cost[i].reall();
}
return 0;
}
#include <iostream.h>
#include <cmath>
int k=8;
class star
{ double mg;
double dist;
char str[8];
public:
star (char n[k], double m, double d );
double reall();
char getstra(){ return str[8];};
};
double star::reall()
{
return ((mg+5)-(5*log10(dist/3.26)));
}
star::star (char n[k] , double m, double d )
{
str[8]= n[k] ;
mg = m;
dist = d;
}
int main()
{
int i=0;
star cost[6]=
{
star ( "sirius" , -1.4 , 8.7),
star ( "Arturus" , -0.06 , 37),
star ( "Vega" , 0.04 ,27),
star ( "Capella" , 0.06 , 45),
star ( "Sun" , -27 , 0.000015749196),
star ( "Rigel" , -0.14 , 750),
};
for (i=0;i<6;i++)
{cout<<" Rmg "<<cost[i].getstra()<<" = "<<cost[i].reall();
}
return 0;
}