我需要制作一个算法来计算一个遵循特定步骤的行列式。
其中一个步骤是我必须(在列上)将每列与矩阵中的第一个元素(大小为nxn)相乘,并将其除以列中的第一个元素(显然从第二列开始)
我对代码的想法就像
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 = 0
和end = n
但我希望我增加每3个操作,这样我就可以对列进行操作。
让我们更直接地说:
我希望j在colum上下降(当我没有修改时),当它到达列的末尾时i增加1并操作下一列。
答案 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