有没有办法让迭代器每3次增加一次?

时间:2016-12-17 14:12:28

标签: c

我需要制作一个算法来计算一个遵循特定步骤的行列式。

其中一个步骤是我必须(在列上)将每列与矩阵中的第一个元素(大小为nxn)相乘,并将其除以列中的第一个元素(显然从第二列开始)

例如这个 1 改变了这一点 2

我对代码的想法就像

for(i=start+1;i<end;i++)
{for(j=start;j<end;++)
{
    if(matrix[start][start]!=0)
    {
    matrix[i][j]=matrix[i][j]*(matrix[start][start]/matrix[start][j])       



    }}}

其中start = 0end = n

但我希望我增加每3个操作,这样我就可以对列进行操作。

让我们更直接地说:

我希望j在colum上下降(当我没有修改时),当它到达列的末尾时i增加1并操作下一列。

2 个答案:

答案 0 :(得分:1)

如果您想要做的只是通过循环计算3秒,则可以使用i++而不是i += 3

答案 1 :(得分:0)

您可以通过嵌套for循环来完成此操作,就像您已经在做的那样。例如:

int N=3; /* size of matrix */
for (int j=0; j < N; j++) { /* for each column... */
   printf("starting column %d\n", j);
   for (int i=1; i < N; i++) { /* for each row except the first one... */
       printf("  do something i=%d j=%d\n", i, j);
   }
}

最终会打印出来:

starting column 0
  do something i=1 j=0
  do something i=2 j=0
starting column 1
  do something i=1 j=1
  do something i=2 j=1
starting column 2
  do something i=1 j=2
  do something i=2 j=2