这个题目到底该如何解决呢(题目要求要用模板函数)??

/*C++:模板函数2(多个数的和)时间限制(普通/Java):1000MS/3000MS运行内存限制:65536KByte总提交:321测试通过:223描述定义模板函数... /*C++:模板函数2(多个数的和)
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:321 测试通过:223

描述

定义 模板函数sum() 求两个数的和。在main()中调用sum()求多个 整数 和多个 实数 的和。

注意必须使用模板函数。

输入

有 4 行。第1行是整数的个数 n(0<n<20) ,第2行是 n个 整数 ;第3是 实数 的个数 m (0<m<20) ,第4行是 m个实数。

输出

有2行。第1行 n个整数的和 ,第2行为 m个实数的和 (保留2位小数)。

样例输入

4
6 7 10 8
3
5.26 7.556 9.258

样例输出

31
22.07

题目来源

hnldyhy*/
#include<iostream>
using namespace std;template<typename T>
T sum()
{
cout<<s1<<endl<<s2<<endl;
}

int main()
{
int n,m,i,s1,a;
double b,s2;
s1=0;
s2=0;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a;
s1=s1+a;
}
cin>>m;
for(i=1;i<=m;i++)
{
cin>>b;
s2=s2+b;
}
sum();
return 0;
}
展开
 我来答
嘿嘿笑笑1004
2014-04-22 · 超过12用户采纳过TA的回答
知道答主
回答量:27
采纳率:100%
帮助的人:28万
展开全部
你自己附上的代码是什么意思啊?是你自己写的程序,还是评测程序给出的框架?
我自己写了一个简单的
#include <iostream>

#include <iomanip>

using namespace std;

template<typename T>

T sum(T a,int num){

T sum=0;

for (int i=0;i<num;i++){

cin>>a;

sum+=a;

}

return sum;

};

int main(){

int i,n,m;

cin>>n;

cout<<sum(0,n)<<endl;

cin>>m;

cout<<setprecision(2)<<sum(0.0,m)<<endl;

return 0;

}
我不知道题目的意思是不是说第一次就一定是整数,第二次是小数
看你的代码意思是的, 所以sum的第一个参数我给的
0和0.0,只是为了把模板里的typename T设置为
相应的int型和double。
还有setprecision()是用来规定输出的数保留小数位数的。
韩靓127
2014-04-22
知道答主
回答量:21
采纳率:0%
帮助的人:17万
展开全部
#include <iostream>
using namespace std;

template <typename T>
T sum(T num1,T num2)
{
return num1 + num2;
}

int main()
{
int n, num1,sum1;
double num2,sum2;
cin >> n;
sum1 = 0;
for(int i = 0; i < n; i++)
{
cin >> num1;
sum1 = sum(sum1,num1);
}
cin >> n;
sum2 = 0;
for(int i = 0; i < n; i++)
{
cin >> num2;
sum2 = sum(sum2,num2);
}
cout << sum1 << endl;
cout << sum2 << endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式