我是Java新手。我试图制作一个对角矩阵。我必须在一个对角线“ X”上输入,在另一个对角线“ Y”上输入,其他位置用“-”填充。现在,我无法填充数组。it should look like this this is what I've done till now
答案 0 :(得分:0)
要填充数组,您必须对其进行迭代。当您有2个尺寸时,您需要以相同的方式遍历两个尺寸,就像打印时一样:
for(int i = o; i < size; i++){
for(int j = o; j < size; j++){
//fill here
}
}
现在您需要知道是否用x,y或-填充。由于您希望在对角线上有x和y,因此需要检查当前位置是否为一个:
if(i == j){
//diagonal 1
md[i][j] = 'X';
} else if( (size - 1 - i) == j){
//diagonal 2
md[i][j] = 'Y';
} else {
md[i][j] = '-';
}
将它们放在一起:
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
if (i == j)
{
//diagonal 1
md[i][j] = 'X';
}
else if ((size - 1 - i) == j)
{
//diagonal 2
md[i][j] = 'Y';
}
else
{
md[i][j] = '-';
}
}
}
Of因为数组是等距的,所以您可以更轻松地完成它,并用'-'预先填充,然后将x和y放在需要的位置:
for (int j = 0; j < size; j++)
{
Arrays.fill(md[j], '-');
}
for (int i = 0; i < Math.floor(size / 2.0); i++)
{
md[i][i] = 'X';
md[i][size - 1 - i] = 'Y';
md[size - 1 - i][size - 1 - i] = 'X';
md[size - 1 - i][i] = 'Y';
}
答案 1 :(得分:0)
检查以下内容以填充矩阵:
用'-'填充其余部分
答案 2 :(得分:0)
根据我对您的问题的理解,结果必须像
Size: 4
0 - - -
- 1 - -
- - 2 -
- - - 3
对角线必须单独具有值,矩阵的其余部分必须包含“-”。
为此,您可以添加条件以查找看起来像
的对角线if(i == j) {
System.out.print(j+"\t");
} else {
System.out.print("-\t");
}
代替此代码
System.out.printf("%c\t", md[i][j]);
我希望这对您有帮助