Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
for循环在C中不能正确递增_C_For Loop - Fatal编程技术网

for循环在C中不能正确递增

for循环在C中不能正确递增,c,for-loop,C,For Loop,我正在运行一个基本循环来检查二维数组的上对角线元素的值: //Check upper diagonal for (i = 0; i < n; i++){ for (j = i+1; j<(n-1); j++){ printf("n: %d i: %d j: %d\n",n, i, j); if (myA[i][j] > pow(10,-13)) return 0; } } 特别具有挑战性的部分在第一行和第二行之间。在中间循环的第

我正在运行一个基本循环来检查二维数组的上对角线元素的值:

//Check upper diagonal
for (i = 0; i < n; i++){
    for (j = i+1; j<(n-1); j++){
        printf("n: %d i: %d j: %d\n",n, i, j);
        if (myA[i][j] > pow(10,-13)) return 0;
    }
}
特别具有挑战性的部分在第一行和第二行之间。在中间循环的第一次迭代之后,j似乎没有像我预期的那样递增


为什么我的输出的第二行不显示
j:2

输出的第二行不显示
j:2
,因为循环被
返回0
终止。输出的第二行实际上是对包含此代码的函数的另一次调用的结果

您可以通过注释内部循环中的
if
语句来轻松测试这一点:

//Check upper diagonal
for (i = 0; i < n; i++){
    for (j = i+1; j<(n-1); j++){
        printf("n: %d i: %d j: %d\n",n, i, j);
        //if (myA[i][j] > pow(10,-13)) return 0;
    }
}
//检查上对角线
对于(i=0;i
输出的第二行不显示
j:2
,因为循环被
返回0
终止。输出的第二行实际上是对包含此代码的函数的另一次调用的结果

您可以通过注释内部循环中的
if
语句来轻松测试这一点:

//Check upper diagonal
for (i = 0; i < n; i++){
    for (j = i+1; j<(n-1); j++){
        printf("n: %d i: %d j: %d\n",n, i, j);
        //if (myA[i][j] > pow(10,-13)) return 0;
    }
}
//检查上对角线
对于(i=0;i
我不相信你!显示完整的程序。删除除循环和printf之外的所有内容。移除if。应该是10行代码。我猜如果语句是真的,并且你返回的时间比你想象的要早,那么你应该是
。如果您提供一个示例,我相信这会更有意义。是否整个代码段运行了两次,而第二行是第二次运行的开始?也就是说,for循环的第一次运行命中了
if
语句,它是真的,并且返回了。另外,我认为您可以只执行
1e-13
,而不是每次调用
pow
。对所有人来说-Oops-意味着键入-
myA
的内容是什么(这是漫长的一天)我不相信你!显示完整的程序。删除除循环和printf之外的所有内容。移除if。应该是10行代码。我猜如果
语句是真的,并且你返回的时间比你想象的要早,那么你应该是
。如果您提供一个示例,我相信这会更有意义。是否整个代码段运行了两次,而第二行是第二次运行的开始?也就是说,for循环的第一次运行命中了
if
语句,它是真的,并且返回了。另外,我认为您可以只执行
1e-13
,而不是每次调用
pow
。对所有人来说-Oops-意味着键入-
myA
的内容是什么(这是漫长的一天)正确。下次我会用SSCE,我的道歉。正确。对不起,下次我会用SSCE。