难过:用于构建数组的 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)
这个让我难住了。这是我构建数组 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)