无法使C ++程序正确计数

时间:2014-01-03 23:23:28

标签: c++ for-loop

新年快乐。

我正在开发一个C ++项目,它是这样的:

for(s=1; s<=n; s++){
    for (k=2; k<=n; k++) {

        den[k]       =   0;
        den[k]       =   sqrt((abs(a[1][1][x]))*(abs(a[1][1][x])) + (abs(a[k][1][x]))*(abs(a[k][1][x])));

....Some magic happens here

    }
}

我无法弄清楚的是,每次内部循环发生时,如何使a[y][y][x]数组向第三个单元格添加一个(即它变为a[y][y][x+1])。

所以,例如,让我们说n = 3

然后在内部for循环发生一次之后,然后将{1}添加到x。再次发生后,再次向x添加1。然后外环将发生,内环将再次开始;我想再次向x添加另一个+1。所以总的来说,我想添加6个1(因为内部循环将运行6次 - 每次一次)。

提前致谢。

3 个答案:

答案 0 :(得分:1)

您可以使用命令

  

++ X;

增加变量x的值。

答案 1 :(得分:1)

我不是100%肯定你在问什么,但我认为你在寻找这个:

int xDelta = 0;

for(s=1; s<=n; s++){
    for (k=2; k<=n; k++, xDelta++) {

        den[k]       =   0;
        den[k]       =   sqrt((abs(a[1][1][x + xDelta]))*(abs(a[1][1][x + xDelta])) + (abs(a[k][1][x + xDelta]))*(abs(a[k][1][x + xDelta])));

....Some magic happens here

    }
}

或者,如果您希望实际修改x变量本身......

for(s=1; s<=n; s++){
    for (k=2; k<=n; k++, x++) {

答案 2 :(得分:1)

看起来很简单,或者我没有得到

for(s=1; s<=n; s++){
int myX = x;
    for (k=2; k<=n; k++) {

        den[k]       =   0;
        den[k]       =   sqrt((abs(a[1][1][x]))*(abs(a[1][1][myX])) + (abs(a[k][1][myX]))*(abs(a[k][1][myX])));

....Some magic happens here
        myX++;
    }
}