请用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
#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
#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;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
这第一题,这个类要怎么获取数组长度,可以添加参数吗