求一个n*n矩阵主对角线之和,次对角线元素之和.用指针完成

1个回答

  • #include

    using namespace std;

    void main()

    {

    /* 变量定义与初始化 */

    int i,j;

    int nMainSum = 0;

    int nSubSum = 0;

    int nSize = 0;

    int **arr = NULL;

    /* 用户输入,指定矩阵大小 */

    cout

    {

    cin>>nSize;

    if (0 >= nSize)

    {

    cout<}

    } while (0 >= nSize);

    /* 为二级指针分配内存 */

    arr = new int *[nSize];

    for(j = 0; j < nSize; j++)

    {

    *(arr + j) = new int[nSize];

    }

    /* 用户输入,给矩阵赋值 */

    for (i = 0; i < nSize; i++)

    {

    for(j = 0; j < nSize; j++)

    {

    cin>>*(*(arr + i) + j);

    }

    }

    /* 计算主对角线的和 */

    for (i = 0; i < nSize; i++)

    {

    nMainSum += *(*(arr + i) + i);

    }

    /* 计算次对角线的和 */

    for (i = nSize - 1, j = 0; i >= 0, j < nSize; i--, j++)

    {

    nSubSum += *(*(arr + i) + j);

    }

    /* 输出结果 */

    cout<

    /* 释放内存 */

    for(j = 0; j < nSize; j++)

    {

    delete[] *(arr + j);

    }

    delete[] arr;

    }