怎么用C++定义一个4*4的矩阵,自己构造数据成员和成员函数,要求达到以下三点功能:1、可手动输入矩阵的内容2、分别求出矩阵正反对角线之和3、以4*4的形式输出矩阵

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 05:05:06
怎么用C++定义一个4*4的矩阵,自己构造数据成员和成员函数,要求达到以下三点功能:1、可手动输入矩阵的内容2、分别求出矩阵正反对角线之和3、以4*4的形式输出矩阵

怎么用C++定义一个4*4的矩阵,自己构造数据成员和成员函数,要求达到以下三点功能:1、可手动输入矩阵的内容2、分别求出矩阵正反对角线之和3、以4*4的形式输出矩阵
怎么用C++定义一个4*4的矩阵,自己构造数据成员和成员函数,
要求达到以下三点功能:
1、可手动输入矩阵的内容
2、分别求出矩阵正反对角线之和
3、以4*4的形式输出矩阵

怎么用C++定义一个4*4的矩阵,自己构造数据成员和成员函数,要求达到以下三点功能:1、可手动输入矩阵的内容2、分别求出矩阵正反对角线之和3、以4*4的形式输出矩阵
#include <stdio.h>
#include <string.h>

class Matrix
{
\x05double m_Data[16];
\x05double* m_pRowhead[4];
public:
\x05Matrix()
\x05{
\x05\x05memset(m_Data, 0, 16*sizeof(double));
\x05\x05for(int i = 0; i < 4; i++)
\x05\x05\x05m_pRowhead[i] = m_Data + i*4;\x05\x05
\x05}
\x05Matrix(const double* pArr)
\x05{
\x05\x05CopyFrom(pArr);
\x05\x05for(int i = 0; i < 4; i++)
\x05\x05\x05m_pRowhead[i] = m_Data + i*4;
\x05}
\x05Matrix(const Matrix& mat)
\x05{
\x05\x05CopyFrom(mat.m_Data);
\x05\x05for(int i = 0; i < 4; i++)
\x05\x05\x05m_pRowhead[i] = m_Data + i*4;
\x05}
\x05void CopyFrom(const double* pArr)
\x05{
\x05\x05memcpy_s(m_Data, 16*sizeof(double), pArr, 16*sizeof(double));
\x05}
\x05double* operator[] (int nRowIndex)
\x05{
\x05\x05return m_pRowhead[nRowIndex];
\x05}
\x05const double* operator[] (int nRowIndex) const
\x05{
\x05\x05return m_pRowhead[nRowIndex];
\x05}
\x05double GetDiagonalSum(bool bMainDiagonal = true) const
\x05{
\x05\x05double sum = 0.0;
\x05\x05int i;
\x05\x05if(bMainDiagonal)
\x05\x05{
\x05\x05\x05for(i = 0; i < 4; i++)
\x05\x05\x05\x05sum += m_pRowhead[i][i];
\x05\x05}
\x05\x05else
\x05\x05{
\x05\x05\x05for(i = 0; i < 4; i++)
\x05\x05\x05\x05sum += m_pRowhead[i][3-i];
\x05\x05}
\x05\x05return sum;
\x05}
\x05void PrintMatrix() const
\x05{
\x05\x05for(int i = 0; i < 4; i++)
\x05\x05{
\x05\x05\x05for(int j = 0; j < 4; j++)
\x05\x05\x05\x05printf_s("%.2lf\t", m_pRowhead[i][j]);
\x05\x05\x05printf_s("\n");
\x05\x05}
\x05}
};

void main()
{
\x05double a[16] = {1.0, 2.0, 3.0, 4.0,
\x05\x05\x05\x05\x055.0, 6.0, 7.0, 8.0,
\x05\x05\x05\x05\x059.0, 8.0, 7.0, 6.0,
\x05\x05\x05\x05\x055.0, 4.0, 3.0, 2.0};
\x05Matrix mat(a);
\x05mat[0][0] = 2.5;
\x05printf_s("主对角线之和为:%.4lf\n", mat.GetDiagonalSum());
\x05printf_s("副对角线之和为:%.4lf\n", mat.GetDiagonalSum(false));
\x05printf_s("打印矩阵:\n");
\x05mat.PrintMatrix();
}
 

matlab中怎么定义一个5*6的矩阵,矩阵元素全为c? R语言怎么样定义一个矩阵3*3的矩阵1 2 36 4 57 8 9这个矩阵怎么定义啊! 怎么用C++定义一个4*4的矩阵,自己构造数据成员和成员函数,要求达到以下三点功能:1、可手动输入矩阵的内容2、分别求出矩阵正反对角线之和3、以4*4的形式输出矩阵 7.18.19 定义一个矩阵c,用指针变量完成矩阵加法的程序c=A+B matlab定义未知矩阵要定义一个未知元素矩阵,已知行和列怎么定义,比如一个1*3的矩阵~就是要一个空矩阵~ 定义3个指向含有4 个元素的一位整形数组的指针变量,用其求A矩阵与B矩阵的和矩阵C matlab怎么定义矩阵,还有解矩阵的方法比如有一个矩阵A,一个B,一个C,已知A*B=C,和A,C中的元素,求B矩阵 Matlab 对矩阵中每个元素进行函数运算 函数是自己定义的分段函数 出错怎么解决其中p4是一个矩阵 矩阵是怎么定义的 fortran语言怎么让一个数组赋值,使其是两个已知常量数组的积比如我定义了一个2*4阶矩阵,这个矩阵是一个2*4,4*4阶矩阵的积,那两个矩阵里面的量是已知的,我应该怎么定义? 关于行标准形矩阵的一个问题这么一个矩阵 0 2 -3 1怎么求其行最简形矩阵,另外,请解释一下定义的意思 0 3 -4 3 0 4 -7 -1 在matlab中怎样定义0,1矩阵变量0-1规划中用的,首先请告诉我能否用矩阵,比如我想定义一个61*61的0,1矩阵变量怎么定义, matlab矩阵定义问题想在matlab里边定义一个n维3乘3矩阵的矩阵,并全部初始化为0,怎么定义啊? MATLAB如何定义矩阵拼接若有矩阵A=[1,2;3,4],B=[5,6;7,8].如何得到矩阵C=[A;B]即矩阵[1,2;3,4;5,6;7,8].(相当于把以上两个矩阵纵向拼接起来).有没有一个通用的算法,对于相同大小(m*n)的两个矩阵A,B,得 线性代数,如何求一个矩阵的逆矩阵例如矩阵为1 23 4逆矩阵怎么求 matlab矩阵分块对于一个矩阵A,随机选取一些列作为矩阵B,剩下的列作为矩阵C,怎么用matlab实现 编写java程序,定义一个2*3的数组a和一个3*4的数组b,在定义一个数组c,使其存放矩阵,最后输出结果 输入一个N*N矩阵,求该矩阵对角线元素之和.要求N用#define 进行定义C语言的编程