квадратная матрица 3х3 (класс)
задать массив объектов класса "Квадратная матрица 3х3". И среди n объектов найти номер матрици с наиболее суммой элементов на главной диагонале (след).
пожалуйста помогите...
В чём помощь должна заключаться-то?
Как так в чём? В том что программу написать для него ...
Код:
class Matrix3x3
{
public:
Matrix3x3() { m_ppn = NULL; this->Init(); };
Matrix3x3(const int matrix[3][3]);
Matrix3x3& operator=(const int matrix[3][3])
{
for (int i = 0; i < 3; i++)
for (int k = 0; k < 3; k++)
m_ppn[i][k] = matrix[i][k];
return *this;
};
protected:
void Init()
{
int** ppn = new int*[3];
for (int i = 0; i < 3; i++)
{
ppn[i] = new int[3];
memset((void*)ppn[i], 0x00, sizeof(int) * 3);
}
if (ppn != NULL)
this->m_ppn = ppn;
};
public:
int Diagonal()
{
int s = 0;
for (int k = 0; k < 3; k++)
s+=m_ppn[k][k];
return s;
}
protected:
int** m_ppn;
};
int main(int argc, char* argv[])
{
int n[7][3][3] = { { { 3, 5, 7 },
{ 1, 2, 7 },
{ 9, 5, 4 } },
{ { 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 } },
{ { 9, 8, 7 },
{ 6, 7, 4 },
{ 3, 2, 1 } },
{ { 1, 1, 1 },
{ 1, 1, 1 },
{ 1, 1, 1 } },
{ { 2, 2, 2 },
{ 2, 2, 2 },
{ 2, 2, 2 } },
{ { 9, 3, 3 },
{ 3, 9, 3 },
{ 3, 3, 9 } },
{ { 4, 4, 4 },
{ 4, 4, 4 },
{ 4, 4, 4 } } };
Matrix3x3* pMatrix = new Matrix3x3[7];
for (int i = 0; i < 7; i++)
pMatrix[i] = n[i];
int iMax = 0, iMatrix = 0;
for (int i = 0; i < 7; i++)
{
int nSum = 0;
if ((nSum = pMatrix[i].Diagonal()) > iMax)
{ iMax = nSum; iMatrix = i; };
}
printf("%d\n",iMatrix);
return 0;
}
{
public:
Matrix3x3() { m_ppn = NULL; this->Init(); };
Matrix3x3(const int matrix[3][3]);
Matrix3x3& operator=(const int matrix[3][3])
{
for (int i = 0; i < 3; i++)
for (int k = 0; k < 3; k++)
m_ppn[i][k] = matrix[i][k];
return *this;
};
protected:
void Init()
{
int** ppn = new int*[3];
for (int i = 0; i < 3; i++)
{
ppn[i] = new int[3];
memset((void*)ppn[i], 0x00, sizeof(int) * 3);
}
if (ppn != NULL)
this->m_ppn = ppn;
};
public:
int Diagonal()
{
int s = 0;
for (int k = 0; k < 3; k++)
s+=m_ppn[k][k];
return s;
}
protected:
int** m_ppn;
};
int main(int argc, char* argv[])
{
int n[7][3][3] = { { { 3, 5, 7 },
{ 1, 2, 7 },
{ 9, 5, 4 } },
{ { 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 } },
{ { 9, 8, 7 },
{ 6, 7, 4 },
{ 3, 2, 1 } },
{ { 1, 1, 1 },
{ 1, 1, 1 },
{ 1, 1, 1 } },
{ { 2, 2, 2 },
{ 2, 2, 2 },
{ 2, 2, 2 } },
{ { 9, 3, 3 },
{ 3, 9, 3 },
{ 3, 3, 9 } },
{ { 4, 4, 4 },
{ 4, 4, 4 },
{ 4, 4, 4 } } };
Matrix3x3* pMatrix = new Matrix3x3[7];
for (int i = 0; i < 7; i++)
pMatrix[i] = n[i];
int iMax = 0, iMatrix = 0;
for (int i = 0; i < 7; i++)
{
int nSum = 0;
if ((nSum = pMatrix[i].Diagonal()) > iMax)
{ iMax = nSum; iMatrix = i; };
}
printf("%d\n",iMatrix);
return 0;
}