c++基础题,题型相近,写出第一个第二个很快就能完成,需要完整代码,急!!

请用C++写!发送在评论区即可。
问题一:
定义一个类名为Array,为指针变量p动态申请空间,并初始化。对p所指向的一维数组逆序排序。具体要求如下:
1)私有数据成员
int *p;
2)公有成员函数
Array(int *t): //构造函数,用参数初始化数据成员
void fun(): //功能函数,实现对一维数组进行逆序
void show()://功能函数, 输出数据成员
~Array(); //析构函数,撤销对象。
3)在主函数中对类测试。例如int a[10]={1,2,3,4,5,6,7,8,9,0};
问题二:
定义一个类Array, 它的数据成员和成员函数具体要求如下:
1)私有数据:
int b[4][5];
int s;
2)公有成员函数:
Array(int t[][5]);//功能为二维数组b初始化
void sum(); // 功能为求二维数组b外围元素之和为s
void fun(); //对二维数组b按列前移
void print(); //功能为以矩阵形式输出二维数组元素
3)用类定义对象array,并用对象array调用成员函数求出二维数组外围元素之和,按列前移,再求二维数组外围元素之和,输出二维数组元素。

代码1

img

#include <iostream>
#include <math.h>
using namespace std;
#define N 10

class Array
{
private:
    int *p;
public:
    Array(int *t)
    {
        p = new int[N];
        for (int i = 0; i < N; i++)
        {
            p[i] = t[i];
        }
    }
    ~Array()
    {
        delete p;
    }
    void fun()
    {
        for (int i = 0; i < N/2; i++)
        {
            int t = p[i];
            p[i] = p[N-1-i];
            p[N-1-i] = t;
        }
    }
    void show()
    {
        for (int i = 0; i < N; i++)
        {
            cout << p[i] << " ";
        }
        cout << endl;
    }
};
int main()
{
    int a[10] = {1,2,3,4,5,6,7,8,9,0};
    Array arr(a);
    arr.show();
    arr.fun();
    arr.show();
    return 0;
}

代码2

img

#include <iostream>
#include <math.h>
using namespace std;

class Array
{
private:
    int b[4][5];
    int s;
public:
    Array(int t[][5])
    {
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                b[i][j] = t[i][j];
            }
        }
    }
    void sum()
    {
        s = 0;
        for (int i = 0; i < 5; i++)
        {
            s +=  b[0][i] + b[3][i];
        }
        for (int i = 1; i < 3; i++)
        {
            s +=  b[i][0] + b[i][4];
        }
        cout << "外围元素之和:" << s << endl;
    }
    void fun()
    {
        for (int i = 0; i < 4; i++)
        {
            int t = b[i][0];
            for (int j = 0; j < 4; j++)
            {
                b[i][j] = b[i][j+1];
            }
            b[i][4] = t;
        }
    }
    void print()
    {
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                cout << b[i][j] << "\t";
            }
            cout << endl;
        }
    }
};
int main()
{
    int a[4][5] = {
        {1,2,3,4,5},
        {6,7,8,9,10},
        {11,12,13,14,15},
        {16,17,18,19,20}
    };
    Array arr(a);
    arr.print();
    arr.sum();
    arr.fun();
    arr.sum();
    arr.print();
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

这第一题,这个类要怎么获取数组长度,可以添加参数吗