关于引用和指针
题目要求是使用指针,向一个函数传入数组、数组大小等,然后求出平均值、最大值、最小值,函数返回void。用引用可以实现,但是用指针一直不对,以下是程序,求指点。#include<iostream>
#include<cstring>
using namespace std;
template <typename T> void count1(T *a,unsigned int n,T *max,T *min, T *average)
{
// cout<<n<<endl;
int i;
T sum=a[0];
max=min=a;
for(i=1;i<=n;i++)
{
if((*max)<a[i])
{
max=&a[i];
}
if((*min)>a[i])
{
min=&a[i];
}
sum+=a[i];
}
*average=sum/(n+1);
}
/*void count(int *a,int n,int &max,int &min, int &average)
{
// cout<<n<<endl;
int i;
int sum=a[0];
max=min=a[0];
for(i=1;i<=n;i++)
{
if(max<a[i])
{
max=a[i];
}
if(min>a[i])
{
min=a[i];
}
sum+=a[i];
}
average=sum/(n+1);
}*/
main()
{
int a[5];
int i;
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
{
a[i]=i+1;
}
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
{
cout<<a[i]<<'\t';
}
cout<<endl;
int max,min,average;
count1(a,sizeof(a)/sizeof(a[0])-1,&max,&min,&average);
cout<<max<<'\t'<<min<<'\t'<<average<<endl;
}