c中的for循环错误
For-loop error in c
我下载了一个程序,似乎在以下行有错误:
for(i=0; i<SIZE_OF_DATA; i--){
在main.c中,但是作为一个新手程序员,我不太确定如何解决它。
这是main.c:
#include <stdio.h>
#include "util.h"
#define SIZE_OF_DATA 10
int main(void) {
int data[SIZE_OF_DATA];
generateRandomData(data, SIZE_OF_DATA);
int i;
for(i=0; i<SIZE_OF_DATA; i--){
printf("%d: %d\n",i,data[i]);
}
return 0;
}
你可能需要
for(i=0; i<SIZE_OF_DATA; i++)
而不是
for(i=0; i<SIZE_OF_DATA; i--)
i--
意味着 i
的值将是 0 然后 -1,-2...
是你不想要的。 SIZE_OF_DATA
将是一个正值,因此 for 循环将导致无限循环,从而导致您的问题。
你的问题是你使用了i--
。所以循环将倒数,即 0、-1、-2、-3 等等,并且 总是 小于 SIZE OF DATA
正确的代码是
for(i=0; i<SIZE_OF_DATA; i++) {
否则你将有一个完美的无限循环:)
任选其一
1.for(i=0; i<SIZE_OF_DATA; i++)
2.for(i=SIZE_OF_DATA -1 ; i>=0; i--)
1.You 正在开始从 0
到 SIZE_OF_DATA
的循环。由于您正在朝着自己的规模前进,因此您应该增加迭代器 i
.
2.You 在这里做相反的事情; i
设置为最后一个位置,即 SIZE_OF_DATA - 1
,现在您必须递减迭代器 i
直到达到 0。
备注
在您的代码中,您从 0 开始,并以 i--
向负方向发展。 for
循环 i<SIZE_OF_DATA
的退出条件将始终保持为真。这可能会给您带来严重的问题
1.Segmentation 故障(访问数组 data[]
中的负索引,即 data[i]
并且 i 正在转向负整数)。
2.Infinite 循环,因为您的终止条件将始终为真。 (必须是false才能跳出循环)
我下载了一个程序,似乎在以下行有错误:
for(i=0; i<SIZE_OF_DATA; i--){
在main.c中,但是作为一个新手程序员,我不太确定如何解决它。
这是main.c:
#include <stdio.h>
#include "util.h"
#define SIZE_OF_DATA 10
int main(void) {
int data[SIZE_OF_DATA];
generateRandomData(data, SIZE_OF_DATA);
int i;
for(i=0; i<SIZE_OF_DATA; i--){
printf("%d: %d\n",i,data[i]);
}
return 0;
}
你可能需要
for(i=0; i<SIZE_OF_DATA; i++)
而不是
for(i=0; i<SIZE_OF_DATA; i--)
i--
意味着 i
的值将是 0 然后 -1,-2...
是你不想要的。 SIZE_OF_DATA
将是一个正值,因此 for 循环将导致无限循环,从而导致您的问题。
你的问题是你使用了i--
。所以循环将倒数,即 0、-1、-2、-3 等等,并且 总是 小于 SIZE OF DATA
正确的代码是
for(i=0; i<SIZE_OF_DATA; i++) {
否则你将有一个完美的无限循环:)
任选其一
1.for(i=0; i<SIZE_OF_DATA; i++)
2.for(i=SIZE_OF_DATA -1 ; i>=0; i--)
1.You 正在开始从 0
到 SIZE_OF_DATA
的循环。由于您正在朝着自己的规模前进,因此您应该增加迭代器 i
.
2.You 在这里做相反的事情; i
设置为最后一个位置,即 SIZE_OF_DATA - 1
,现在您必须递减迭代器 i
直到达到 0。
备注
在您的代码中,您从 0 开始,并以 i--
向负方向发展。 for
循环 i<SIZE_OF_DATA
的退出条件将始终保持为真。这可能会给您带来严重的问题
1.Segmentation 故障(访问数组 data[]
中的负索引,即 data[i]
并且 i 正在转向负整数)。
2.Infinite 循环,因为您的终止条件将始终为真。 (必须是false才能跳出循环)