
/*(2)定义一个类Array, 它的数据成员和成员函数具体要求如下:
1)私有数据:
int b[4][5];
int s;
2)公有成员函数:
Array(int t[][5]);//功能为二维数组b初始化
void sum(); // 功能为求二维数组b外围元素之和为s
void fun(); //对二维数组b按列前移
void print(); //功能为以矩阵形式输出二维数组元素
void prints();
3)用类定义对象array,并用对象array调用成员函数求出二维数组外围元素之和,按列前移,再求二维数组外围元素之和,输出二维数组元素。
*/
#include <iostream>
using namespace std;
class Array
{
private:
int b[4][5 ];
int s;
public:
Array(int t[][5]);
void sum();
void fun();
void print();
void prints();
};
Array::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 Array::sum()
{
s = 0;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 5; j++)
{
if (i == 0 || i == 3 || j == 0 || j == 4)
{
s += b[i][j];
}
}
}
}
void Array::fun()
{
for (int i = 0; i < 4; i++)
{
int t = b[i][0];
for (int j = 0; j <5-1; j++)
{
b[i][j] = b[i][j+1];
}
b[i][4] = t;
}
}
void Array::print()
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 5; j++)
{
cout << b[i][j] << '\t';
}
cout << endl;
}
}
void Array::prints()
{
cout << s <<endl;
}
int main()
{
int a[4][5] = { {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5 } };
Array arr(a);
cout<<"遍历数组:" << endl;
arr.print();
cout << "外围元素之和:";
arr.prints();
arr.fun();
cout << "左移后:" << endl;
arr.print();
return 0;
}
void Array::prints()
{
sum(); 没有这一步,s就没有初始化。
cout << s <<endl;
}