帮助澄清我的老师要求我如何处理多维数组(c++)

Assistance with clarifying what my teacher is asking me to do with multidimentional arrays(c++)

本文关键字:处理 c++ 数组 何处理 我的老师 帮助      更新时间:2023-10-16

我正在为我的课程做编程作业。在这个程序中,我们必须编程一个形状,我们可以使用鼠标四处移动。我使用的是eclipse,它运行在oracleVM上(使用linuxmint)。现在,我的教授在给定的文件中添加了一些评论,为我们指明了正确的方向,但有一条评论我无法理解。评论是:

TODO:编写默认构造函数和构造函数以获取16个参数,a00,a01,。。。,a10、a11等。通过a33初始化a.1参数x初始化对角线值a[0][0]、a[1][1]、a[2][2]、a[3][3]。所有其他0。默认构造函数应该像传递1初始化对角线一样初始化它

我问过他,但仍然很困惑,我无法很快得到教授的回复。我得到了关于构建阵列的部分,它会像:

a[4][4] = {.....};

但我不明白指令是怎么说的。我想知道是否有人可以看看说明书,并根据说明书告诉我这是否正确(这可能是错误的,但这就是我想到的):

int a[4][4] = {(0,0), (0,1),(0,2),(0,3),(0,4), 
               (0,5), (0,6),(0,7),(0,8),(0,9),
               (1,0), (1,1),(1,2),(1,3),(1,4),
               (1,5), (1,6),(1,7),(1,8),(1,9),
               (2,0), (2,1),(2,2),(2,3),(2,4),
               (2,5), (2,6),(2,7),(2,8),(2,9),
               (3,0), (3,1),(3,2),(3,3),(3,4),
               (3,5), (3,6),(3,7),(3,8),(3,9),
               (4,0), (4,1),(4,2),(4,3),(4,4)
              };

我知道你可能可以像我一样做一个循环来分配值,但我只是想得到一个视觉效果,因为指令上写着:

初始化对角线值a[0][0]、a[1][1]等

也许我对说明书的解读太多了,在本不应该让人困惑的时候却让自己困惑。谢谢

您被要求编写三个构造函数。

第一个取16个参数,并相应地初始化所有16个元素。

第二个采用1个参数,将对角线元素设置为该值,并将所有其他元素设置为零。

第三个不带参数,将对角线元素设置为1,将所有其他元素设置为0。

请注意,共有16个元素,而不是25个。就像声明为的数组一样

int a[4];

具有四个元素a[0]a[1]a[2]a[3],但没有元素a[4],同样是一个声明为的数组

int a[4][4];

具有16个元素并且没有元素a[0][4]

听起来他希望在构造函数中将一个4x4数组的所有值(对角线除外)都设置为0。可以这样做:

int array[4][4];
for(int i=0;i<4;i++){
    for(int u=0;u<4;u++){
        array[i][u] = (i == u ? 1 : 0);
    }
}

或者你可以把它全部写在构造函数中:

int array[4][4] = {
    {1,0,0,0},
    {0,1,0,0},
    {0,0,1,0},
    {0,0,0,1}
};