我试图将对角线输入C中的二维数组。我能够在水平和垂直方向上进行单词处理,但是这里比较棘手,因为这些单词可以向上或向下输入斜。我希望变量X在循环的第一次迭代中为0,然后对循环的其余部分进行递增,或者为循环的其余部分递减(无论是随机选择哪一个)。这可能吗?
for(i=0, j = 0; i < wordLen && j < arrayHeight; j++, i++)
array[arrayRow+X][arrayColumn+i] = wordList[k][j];
tl; dr我注意让X变量以这种方式做某些特定事情,我无法弄清楚如何做到这一点
答案 0 :(得分:0)
为什么不
for(i=0, j = 0; i < wordLength && j < HEIGHT; j++, i++)
array[arrayRow-i][arrayColumn+i] = animals[k][j];
和
for(i=0, j = 0; i < wordLength && j < HEIGHT; j++, i++)
array[arrayRow+j][arrayColumn-i] = animals[k][j];
等。对于不同的方向
或者
for(i=0, j = 0; i < wordLength && j < HEIGHT; j++, i++)
array[arrayRow+wordlength-i-1][arrayColumn+i] = animals[k][j];
或者如果您想使用x
for(i=0, j = 0; i < wordLength && j < HEIGHT; j++, i++)
{
x=wordlength-i-1;
array[arrayRow+x][arrayColumn+i] = animals[k][j];
}