麻烦大家看一下错在哪里了?关于c++函数模板
#include<iostream>template<classT>TMAX(T*P);intmain(){usingnamespacestd;intsh[5];inti...
#include<iostream>
template<class T>
T MAX(T *P);
int main()
{using namespace std;
int sh[5];
int i=0;
double ch[5];
cout<<"enter 5 int num"<<endl;
for( i=0;i<5;i++)
cin>>sh[i];
T max=MAX(sh);
cout<<max;
cout<<"enter 5 double num"<<endl;
for( i=0;i<5;i++)
cin>>ch[i];
T max=MAX(ch);
cout<<max;
return 0;
}
template <class T>
T MAX(T *P)
{T tem;
for(int i=0;i<5;i++)
if(tem<p[i])
tem=p[i];
return tem;
} 展开
template<class T>
T MAX(T *P);
int main()
{using namespace std;
int sh[5];
int i=0;
double ch[5];
cout<<"enter 5 int num"<<endl;
for( i=0;i<5;i++)
cin>>sh[i];
T max=MAX(sh);
cout<<max;
cout<<"enter 5 double num"<<endl;
for( i=0;i<5;i++)
cin>>ch[i];
T max=MAX(ch);
cout<<max;
return 0;
}
template <class T>
T MAX(T *P)
{T tem;
for(int i=0;i<5;i++)
if(tem<p[i])
tem=p[i];
return tem;
} 展开
4个回答
展开全部
我不得不说,你基础很差,如果你是初学者,没必要开始就学模板,这是C++最NB的地方,也是最复杂精妙的地方。
首先(建议),在用指针作为参数时要有个传递尺寸的参数,保证程序的完整性与健壮性
其次,主函数中max重复声明
还有 ,模板函数中tem声明却没有赋值。
最后,命名空间的声明紧随所有头文件包含。
首先(建议),在用指针作为参数时要有个传递尺寸的参数,保证程序的完整性与健壮性
其次,主函数中max重复声明
还有 ,模板函数中tem声明却没有赋值。
最后,命名空间的声明紧随所有头文件包含。
追问
你的建议(一)我不明白。你能把这个程序修改正确吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有很多的小问题,随便帮你改下,你自己对照,写程序注意细节
#include<iostream>
using namespace std;
template<class T>
T MAX(T *P);
int main()
{
int sh[5];
int i=0;
double ch[5];
cout<<"enter 5 int num"<<endl;
for( i=0;i<5;i++)
cin>>sh[i];
int imax=MAX(sh);
cout<<imax;
cout<<"enter 5 double num"<<endl;
for( i=0;i<5;i++)
cin>>ch[i];
double max=MAX(ch);
cout<<max;
system("pause");
return 0;
}
template <class T>
T MAX(T *p)
{T tem=p[0];
for(int i=1;i<5;i++)
if(tem<p[i])
tem=p[i];
return tem;
}
#include<iostream>
using namespace std;
template<class T>
T MAX(T *P);
int main()
{
int sh[5];
int i=0;
double ch[5];
cout<<"enter 5 int num"<<endl;
for( i=0;i<5;i++)
cin>>sh[i];
int imax=MAX(sh);
cout<<imax;
cout<<"enter 5 double num"<<endl;
for( i=0;i<5;i++)
cin>>ch[i];
double max=MAX(ch);
cout<<max;
system("pause");
return 0;
}
template <class T>
T MAX(T *p)
{T tem=p[0];
for(int i=1;i<5;i++)
if(tem<p[i])
tem=p[i];
return tem;
}
追问
怎么还有很多错误啊
d:\program files\microsoft visual studio\myprojects\mo\m.cpp(26) : error C2065: 'p' : undeclared identifier
d:\program files\microsoft visual studio\myprojects\mo\m.cpp(14) : see reference to function template instantiation 'int __cdecl MAX(int *)' being compiled
m.obj - 1 error(s), 0 warning(s)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
max<double>(&sh)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
((a)
追问
什么意思?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询