王同学有困难 发表于 2019-11-3 21:36:37

程序题/用C++编写一个程序求出数组之和(需用到函数模板,类型参数,累加循环)

鱼C工作室的各位编程大佬们,希望大家帮助一下C++小白王同学。

题目是用C++语言编写一个程序求出数组之和。

要求是各种类型的数组都可以求和,需要用到函数模板,类型参数,累加循环等知识。

希望大家可以帮助我解决这一程序问题。

人造人 发表于 2019-11-3 21:59:16

#include <iostream>
#include <vector>

template <typename T>
T sum(const std::vector<T> &data)
{
        T res = 0;
        for(const auto &i: data)
        {
                res += i;
        }
        return res;
}

int main()
{
        std::vector<int> i_data = {1, 2, 3, 4, 5};
        std::vector<double> d_data = {1.2, 2.3, 3.4 ,4.5};
        std::cout << sum(i_data) << std::endl;
        std::cout << sum(d_data) << std::endl;
        return 0;
}

bin554385863 发表于 2019-11-3 22:11:50

本帖最后由 bin554385863 于 2019-11-3 22:17 编辑

#include <iostream>
template <typename type>
type sum(type arr[], size_t num)
{
    type sum = 0;
    for (size_t i = 0; i < num; i++)
    {
      sum += arr;
    }
    return sum;
}
int main(int argc, char const *argv[])
{
    int a[] = {1,2,3,4,5,6,7,8,9};
    std::cout<<sum(a, 9)<<std::endl;
    return 0;
}

只能计算C内置数组,不能用用于容器类型
----------------------------------------------------------------------------
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

尝试新的跨平台 PowerShell https://aka.ms/pscore6

PS E:\Users\admin\Documents\VScode> & 'c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-5kbpif20.ov1' '--stdout=Microsoft-MIEngine-Out-id11od4x.wsx' '--stderr=Microsoft-MIEngine-Error-dhqc4lbl.vpv' '--pid=Microsoft-MIEngine-Pid-0s5o1ar1.pji' '--dbgExe=D:\MinGW\bin\gdb.exe' '--interpreter=mi'
45

PS E:\Users\admin\Documents\VScode>
页: [1]
查看完整版本: 程序题/用C++编写一个程序求出数组之和(需用到函数模板,类型参数,累加循环)