我正在为我的课程编写一个编程作业。在这个程序中,我们必须编写一个可以使用鼠标移动的形状。我正在使用eclipse,它运行在oracle VM上(使用linux mint)。现在,我的教授在给定的文件中添加了一些评论,指出我们正确的方向,但有一条我无法理解的评论。该评论是:
TODO:编写默认构造函数和构造函数,取16个参数,a00,a01,...,a10,a11等。通过a33初始化一个。 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]等。
也许我在阅读教学方式太多,当它不应该让人困惑时,我会感到困惑。谢谢。
答案 0 :(得分:1)
您被要求编写三个构造函数。
第一个参数需要16个参数并相应地初始化所有16个元素。
第二个采用1个参数,将对角线元素设置为该值,并将所有其他元素设置为零。
第三个没有参数,并将对角线元素设置为1,将所有其他元素设置为零。
请注意,有16个元素,而不是25.就像声明为
的数组一样int a[4];
包含四个元素a[0]
,a[1]
,a[2]
和a[3]
,但没有元素a[4]
,同样声明了一个数组如
int a[4][4];
有16个元素,没有元素a[0][4]
。
答案 1 :(得分:0)
听起来他想要一个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}
};