Zach_菠萝侠 2022-06-25 15:18 采纳率: 42.9%
浏览 85
已结题

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调用成员函数求出二维数组外围元素之和,按列前移,再求二维数组外围元素之和,输出二维数组元素。

  • 写回答

2条回答 默认 最新

  • 天际的海浪 2022-06-25 21:27
    关注
    获得5.00元问题酬金

    代码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

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月3日
  • 创建了问题 6月25日