难过:用于构建数组的 for 循环不起作用,初始条件被忽略?

Stumped: for loop to build an array not working, initial condition ignored?

这个让我难住了。这是我构建数组 b[i] 的代码,从 0 到 N,其中 N = 126.

int N = 126;
double b[N];
int i;
for(i = 0; i < N; i++);
{
    b[i] = (double)i;
    printf("b[%lf] = %d\n",b[i], i);
}

出于某种原因,这是我得到的:

b[126.000000] = 126

仅此而已。 i 为 0 的初始条件被忽略,并且由于某种原因它设置 i 为 N 的值。奇怪!

我是个 c 新手,所以我肯定遗漏了一些明显的东西。非常感谢任何帮助!

安迪.

错误在于你在 for loop 语句末尾使用了 ;。这就是为什么程序只是简单地执行剩余的语句,就好像它们不在循环中一样,此时 i 变成了 126.

把for循环末尾的;去掉,就是运行不做任何事就通过循环然后执行最后一个body i 的值(即 N = 126)