使用函数模板编写对于任意类型的数组,求其所有元素的最大值

如题所述

#include <stdio.h>
template <class T>
T max(T a[],int n)
{
T temp=a[0];
int i=0;
for(i=1;i<n;i++)
if (a[i]>temp)
temp=a[i];
return temp;
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
printf("max=%d\n",max(a,10));
float b[10]={1.1,2.3,3.5,4.4,5.5,6.6,7.5,8.6,9.7,10.6};
printf("max=%f\n",max(b,10));
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-26
<template typename T>
T max_elem(T* arr, int size)
{
T max = arr[0];
for (int i = 1; i < size; i++)
{
if (max < arr[i])
max = arr[i];
}
return max;
}

用函数模板的方法,求n个元素中的最大值,每个元素可以看成int型、double...
printf("在iArr[]中最大值为 : %d\\n",GetMax(iArr,8));double dArr[] = { 1.4,2.3,0.8,1.35,2.45,3.8 };printf("在dArr[]中最大值为 : %f\\n",GetMax(dArr,6));char cArr[] = { 'e','d','c','a','b','k' };printf("在cArr[]中最大值为 : %c\\n",Ge...

用c++ 设计一个函数模板,实现从int、float、double类型的数组找出...
include <iostream> using namespace std;template <class T> T max(T a[], int n){ int i;T m;m = a[0];for(i=1; i<n; i++){ if(m < a[i]){ m = a[i];} } return m;} int main(){ int maxa,a[5]={1,4,3,2,5};float maxb,b[5]={5.2f,3.2f,4.2f...

...的数组x[]求最大值的程序,要求将求最大值的函数设计成函数模板...
printf("最大的数为:%d\\n",fun(a));}

C++编程:定义模板函数,返回基本类型数组中最大值或最小值(主函数验证...
using namespace std;template <typename T>\/\/模板函数 T fun(T *p,int n,int x=0){ for(int maxi=0,mini=0,i=1;i<n;i++)if(p[maxi]p[i])mini=i;return p[x ? mini : maxi];} int main(int argc,char *argv[]){\/\/测试主函数 double a[3]={1.07,66.34,42.1};in...

编写一个对具有n个元素的数组x[]求最大值的程序
编写程序以求具有n个元素的数组x[]的最大值。使用模板函数Max,该函数接收一个整数指针x和整数n,用于数组的首地址和数组长度。定义一个变量m并将其初始化为x中的第一个元素值。使用for循环从数组的第二个元素开始遍历到n-1个元素。在循环中,使用if语句检查当前元素值与m的大小关系,若当前元素值...

编写模板函数maxn它由一个T类型元素组成的数组和一个表示数组元素数目的...
include<iostream> using namespace std;template<class T> void maxn( T *a,int n){ int i;T s;for(i=0;i<n;i++){ if(a[i+1]<a[i]){a[i+1]=a[i];s=a[i+1];} } cout<<"最大值为:"<<s<<endl;} int main( ){ int i,n; int a[10000];cout<<"请输入N的值...

定义类模板实现对数组类中数组元素的查找和求和功能.
代码如下:class Box { private:int a, b, c;public:int V;Box(int ch,int k,int g){ a = ch;b = k;c = g;V = a*b*c;}

用C++用C++编写一个函数模板,对不同类型的数组求平均值。
include <iostream>using namespace std;template<typename T>double average(T *src, int len) \/\/ T 会通用类型{ double sum = 0; for (int i = 0; i < len; i++) sum += src[i]; return sum \/ len;}int main(){ int n[] = {10, 1, 27, 43, 15}; ...

奇怪的c++的学习Primer Plus -14 c++中的代码重用
通过函数模板和类模板,我们能够实现代码重用。本章主要涉及类模板的使用。valarray类是一个模板类,它能够支持处理不同数据类型,如数值或具有类似特征的类。它可以用于执行诸如计算数组中所有元素的总和、找出最大值和最小值、访问各元素以及返回元素个数等操作。接下来,我们以Student类为例,探讨类模板...

定义一个函数模板,实现求n个数平均值的功能。
cout<<"数组元素如下所示:\\n";for(int i=0;i<n;i++)cout<<a[i]<<"\\t";cout<<endl;} \/\/ cpp 文件 \/* average.cpp *\/ include"average.h"include<iostream.h> void main(){ int a[]={1,3,6,7,2,9};float b[]={1.3,2.8,6.9,7.1,5.6};display(a,sizeof(a)\/...

相似回答