/************************************************/
/* Name: premserv */
/* Description: Calculations for premium serv */
/* Parameters: N/A */
/* Return Value: premserv */
/************************************************/
float premserv ()
{
int daymin = 0; //Var for day minutes
int nightmin = 0; //Var for night minutes
float daytotal = 0; //Var for day total
float nighttotal = 0; //Var for night total
float premserv = 0; //Var for premium service cost
cout << "\n" << "Please enter the number of minutes used durring the day (6AM - 6PM): " << "\n";
cin >> daymin;
cout << "\n" << "Please enter the number of minutes used durring the night (6PM - 6AM): " << "\n";
cin >> nightmin;
daytotal = (daymin - 75) * 0.1;
nighttotal = (nightmin - 100) * 0.05;
premserv = 25 + daytotal + nighttotal;
return premserv;
}
我需要从函数中获取daymin,nightmin和premserv的值。我只知道如何从函数中获得1个值。
答案 0 :(得分:8)
创建一个包含所有三个浮点数的结构,并返回该结构而不是单个浮点数。
答案 1 :(得分:3)
您可以使用references。
float premserv (int& daymin, int& nightmin)
{
float daytotal = 0; //Var for day total
float nighttotal = 0; //Var for night total
float premserv = 0; //Var for premium service cost
cout << "\n" << "Please enter the number of minutes used durring the day (6AM - 6PM): " << "\n";
cin >> daymin;
cout << "\n" << "Please enter the number of minutes used durring the night (6PM - 6AM): " << "\n";
cin >> nightmin;
daytotal = (daymin - 75) * 0.1;
nighttotal = (nightmin - 100) * 0.05;
premserv = 25 + daytotal + nighttotal;
return premserv;
}
这将直接修改daymin
和nightmin
的值,您仍然可以将premserv
保留为返回值(因为它符合函数名称,我猜)。
你会这样使用它:
int daymin = 0;
int nightmin = 0;
float premiumservice = premserv(daymin, nightmin);
答案 2 :(得分:1)
在c中,创建一个结构来保持上述3个值。在c ++中创建一个类并返回该类的对象。
答案 3 :(得分:1)
float premserv(int& daymin, int& nightmin) {
float daytotal = 0; //Var for day total
float nighttotal = 0; //Var for night total
float premserv = 0; //Var for premium service cost
// etc...
'premserv'已被退回。
答案 4 :(得分:1)
除了使用参数或定义特定的结构返回类型之外的另一个选择是使用来自C ++ 11或TR1的元组:
/* Return Value: tuple<daymin,nightmin,premserv> */
/***************************************************/
std::tuple<int,int,float> premserv ()
{
// ...
return std::make_tuple(daymin, nightmin, premiumservice);
}
然后你可以像这样使用它:
int daymin, nightmin;
float premiumservice;
std::tie(daymin,nightmin,premiumservice) = premserv();
或者,如果您只关心其中一个值:
int nightmin = std::get<1>(premserv());
答案 5 :(得分:0)
你得到了multipel答案,但是你可以在函数参数中返回struct,这样你就有一个对象可以处理,返回值会告诉你数据是否有效。
struct
{
float premserv;
int daymin;
int nightmin;
} data;
bool premserv (data & my_data)
{
// ...
}
if( premserv(my_data) == true )
{
// user the data
}