我是C ++的初学者,我遇到了以下问题:
在我的程序中,我有一个函数,我将一个固定大小的数组作为参数传递给我。我遍历它并执行一些操作。结果我有2个变量 - br
和a
,我想从函数返回。我创建了一对并为其分配了这些值。但是,当我运行整个程序时,编译器抛出一个错误 - 无法转换std :: pair<>到int。我想问为什么会这样?
#include <utility>
using namespace std;
pair <double,double> rez;
//int main() ...
double sumaf(int k[20])
{
for(int i=0; i<20; i++)
{
if(k[i]>0 && k[i]%3==0)
{
a+=k[i];
br++;
}
}
rez.first=a;
rez.second=br;
return rez;
}
答案 0 :(得分:3)
您需要更改sumaf()
的返回类型。
此外,不需要全局变量(rez
)。
#include <utility>
using namespace std;
pair<double, double> sumaf(int k[20])
{
double a = 0,
br = 0;
for(int i = 0; i < 20; i++)
{
if (k[i] > 0 && k[i] % 3 == 0)
{
a += k[i];
br++;
}
}
return make_pair(a, br);
}