如何使用指针编写具有可变数量的参数的函数?

尤里·克尔扎任诺夫斯基(Yuri Krzyzhanovski)

因此,我的任务是使用指针编写具有可变数量的参数的函数“ mult”。并且此函数必须计算浮点数的乘积。

我遵循了我们大学给我们的指导,但是我的乘积仍然等于零。我发现问题在于要相乘的其他所有数字均为零。

#include <iostream>


using namespace  std;

int mult(int k,...){
    int* p = &k;
    int m = 1;
    for(; k != 0; k--){
        m *= *(++p);
    }
    return m;
}

int main(){
    float res1 = mult(11,45,10,9,8,7,6,5,4,3,2,2);
    float res2 = mult(7,12,23,0.3,0.6,1,2);
    float res3 = mult(3,0.6,-12,-0.9);
    cout << "Your results are:\n"
         <<res1<<"\n"
         <<res2<<"\n"
         <<res3<<"\n";

    return 0;
}

样本输出

以下是指南中的示例:

void Print_stor(int k, ...)
{
 int n=k;
 int a[n];
 int *p = &k;
 for ( ; k!=0;k--)
 a[k-1]=*(++p);
 for(int i=n-1; i>=0; i--)
 printf("%i ", a[i]);
 printf("\n");
}



int sum(int k, …)
 {
 int *p = &k;
 int s=0;
 for ( ; k!=0; k--)
 s+=*(++p);
 return s;
科里·克莱默

您可以将其编写mult为可变参数函数,并使用std::accumulatewithstd::multiplies作为运算符。

#include <functional>
#include <initializer_list>
#include <iostream>
#include <numeric>

template<typename T, typename... Args>
T mult(T t, Args... args)
{
    std::initializer_list<T> values{args...};
    return std::accumulate(values.begin(), values.end(), t, std::multiplies<T>());
}

int main()
{
    std::cout << mult<float>(11,45,10,9,8,7,6,5,4,3,2,2);
    return 0;
}

输出量

3.59251e+09

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

具有可变数量/参数类型的函数的TypeScript声明文件

我如何将数组作为args列表传递给C中具有可变数量参数的函数

具有可变数量参数的OCaml函数

如何创建具有可变数量的参数的函数?

如何创建带有可变数量的参数的函数变量?

枚举可以具有可变数量的参数吗?

如何编写具有可变数量的输出参数的匿名函数?

在LLVM中,如何插入/声明具有可变数量的参数的函数?

如何创建具有可变数量的类型参数的模板?

如何在Julia中编写一个接受可变数量参数的函数?

Python咖喱函数具有可变数量的参数

如何创建具有可变数量的“ for”循环且每个循环具有不同索引的函数?

具有可变数量ifelse中断的R函数

从指针映射到具有可变数字参数的函数调用函数

如何从类似的函数调用具有可变数量的参数的函数?

具有可变数量参数的函数的指针

如何编写一个函数,该函数接受可变数量的参数(整数)并使用stdargs输出它们?

创建带有可变数量参数的函数

具有可变数量的numpy数组的Python函数

具有可变数量参数的 Concat CString

具有可变数量的特定模板类型参数的模板函数

如何将具有可变数量参数的函数分配给单个变量?

如何在 Python 中使用字符串作为函数参数并具有可变数量的参数

具有可变数量表标题的 DataTables 呈现函数

具有可变数量参数的函数的通用打字稿

具有可变数量参数的 f 字符串?

如何在JSDoc中注释具有可变数量参数的Function类型的对象?

Numba - 如何为可变数量的函数参数声明签名?

具有特定类型的可变数量参数的 C++ 函数