鱼C论坛

 找回密码
 立即注册
查看: 1933|回复: 2

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

[复制链接]
发表于 2019-11-3 21:36:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

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

希望大家可以帮助我解决这一程序问题。
最佳答案
2019-11-3 22:11:50
本帖最后由 bin554385863 于 2019-11-3 22:17 编辑
  1. #include <iostream>
  2. template <typename type>
  3. type sum(type arr[], size_t num)
  4. {
  5.     type sum = 0;
  6.     for (size_t i = 0; i < num; i++)
  7.     {
  8.         sum += arr[i];
  9.     }
  10.     return sum;
  11. }
  12. int main(int argc, char const *argv[])
  13. {
  14.     int a[] = {1,2,3,4,5,6,7,8,9};
  15.     std::cout<<sum(a, 9)<<std::endl;
  16.     return 0;
  17. }
复制代码

只能计算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>
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-11-3 21:59:16 | 显示全部楼层
  1. #include <iostream>
  2. #include <vector>

  3. template <typename T>
  4. T sum(const std::vector<T> &data)
  5. {
  6.         T res = 0;
  7.         for(const auto &i: data)
  8.         {
  9.                 res += i;
  10.         }
  11.         return res;
  12. }

  13. int main()
  14. {
  15.         std::vector<int> i_data = {1, 2, 3, 4, 5};
  16.         std::vector<double> d_data = {1.2, 2.3, 3.4 ,4.5};
  17.         std::cout << sum(i_data) << std::endl;
  18.         std::cout << sum(d_data) << std::endl;
  19.         return 0;
  20. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-3 22:11:50 | 显示全部楼层    本楼为最佳答案   
本帖最后由 bin554385863 于 2019-11-3 22:17 编辑
  1. #include <iostream>
  2. template <typename type>
  3. type sum(type arr[], size_t num)
  4. {
  5.     type sum = 0;
  6.     for (size_t i = 0; i < num; i++)
  7.     {
  8.         sum += arr[i];
  9.     }
  10.     return sum;
  11. }
  12. int main(int argc, char const *argv[])
  13. {
  14.     int a[] = {1,2,3,4,5,6,7,8,9};
  15.     std::cout<<sum(a, 9)<<std::endl;
  16.     return 0;
  17. }
复制代码

只能计算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>
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-7 04:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表