重金悬赏~~~~跪求!!C++或C语言编程....各位能人请帮帮忙,这是我们选修的考试~!!

2025-02-24 01:25:30
推荐回答(2个)
回答1:

第一题 & 第四题已给出答案, 第三题请参考清华大学的郑莉编的 c++程序设计这本书的第244页,题目类似. 第二题只给你点提示,也看你自己的了,不难.

第一题:

#include
using namespace std;

template
T maximum(T a[],int N)
{
T max;
max= a[0];
for(int i=0;i if( max < a[i])
max = a[i];
}
return max;
}

template
void display(T a[],int N)
{
cout<<"数组元素如下所示:\n";
for(int i=0;i cout< cout<}

void main()
{
int a[]={10,2,5,4,19,20,3}; // 用一个整形数组测试
float b[]={1.0,2.8,3.94,4.51,0.61,7.83}; // 用一个浮点型数组测试
display(a,sizeof(a)/sizeof(int));
cout<<"该数组的最大值为:"< display(b,sizeof(b)/sizeof(float));
cout<<"该数组的最大值为:"<
}

第四题(包含两个文件, 1.Vector.h, 2.vector.cpp):

//1. vector.h
#include"assert.h"
template
class Vector
{
public:
Vector(unsigned);
Vector(unsigned,T);
Vector(const Vector &);
virtual ~Vector();
T & operator[](unsigned);
Vector & operator=(const Vector &);
Vector operator+(const Vector &);
Vector operator-(const Vector &);
int operator *(const Vector &);
//friend ostream & operator <<(ostream & out,Vector&);
unsigned length() const;
unsigned setSize(unsigned);
unsigned setSize(unsigned,T);
protected:
T * data;
unsigned size;
};

templateVector::Vector(unsigned num):size(num)
{
data=new T[size];
assert(data!=0);
}

templateVector::Vector(unsigned num,T v):size(num)
{
data=new T[size];
assert(data!=0);
for(int i=0;i data[i]=v;
}

templateVector::Vector(const Vector & v)
{
size=v.size;
data=new T[size];
for(unsigned i=0;i data[i]=v.data[i];
}

templateVector::~Vector()
{
delete[]data;
}

template
T & Vector::operator[](unsigned u)
{
return data[u];
}
template
Vector& Vector::operator=(const Vector & v)
{
if(size!=v.size)
{
T * np=new T[v.size];
assert(np!=0);
delete[]data;
size=v.size;
data=np;
}
for(unsigned i=0;i data[i]=v.data[i];
return *this;
}
templateVector Vector::operator+(const Vector & v)
{
Vector d(v.size);
for(unsigned i=0;i d.data[i]=data[i]+v.data[i];
return d;
}
templateVector Vector::operator-(const Vector & v)
{
Vector d(v.size);
for(unsigned i=0;i d.data[i]=data[i]-v.data[i];
return d;
}
templateint Vector::operator*(const Vector & v)
{
int a=0;
for(unsigned i=0;i a+=(v.data[i]*data[i]);
return a;
}

templateunsigned Vector::setSize(unsigned u)
{
if(size!=u)
{
T *np=new T[u];
assert(np!=0);
unsigned n=u<=size?u:size;
for(int i=0;i np[i]=data[i];
delete[]data;
size=u;
data=np;
}
return size;
}

//2. vector.cpp
#include
#include"Vector.h"
#include"assert.h"
void main()
{
Vector a(3),v(3),d(3);
int c;
a[0]=1;a[1]=1;a[2]=4;v[0]=2;v[1]=3;v[2]=5;
c=a*v;
cout<<"c="< d=a+v;
for( int i=0;i<3;i++)
cout<<"d["< cout< d=a-v;
for(i=0;i<3;i++)
cout<<"d["< cout<}

第二题:
#include

//模版类
template
T max(T x,T y)
{
return (x>y?x:y); // 找到较大值,这是两个数,你可以扩展到多个数
}

//主函数
void main()
{
cout<}

回答2:

又作弊!