我在问题http://www.codechef.com/ACMKAN13/problems/LINEPROB下面有一个C代码片段,但输入似乎进入无限循环,它没有停止。有人可以看看。
提前致谢:)
整个代码位于:http://pastebin.com/aKdybQtm
int main(){
int *res, in[4], i, j, n;
j = 0;
scanf("%d", &n);
res = malloc(n*(sizeof(int)));
for(i=0; i<n; i++)
{
scanf("%d", &in[0]);
scanf("%d", &in[1]);
scanf("%d", &in[2]);
scanf("%d", &in[3]);
res[j] = countbox(in);
j++;
}
for(i=0; i<n; i++)
printf("%d\n", res[i]);
return 0;
}
答案 0 :(得分:3)
for
中的main
循环没有问题。您的countbox
函数
if(x1 < x2){
while((x1+i)<x2){
if(getY(m, (x1+i), in) != (x1+i))
count++;
}
}
一旦(x1+i)<x2
条件成立,它将永远为真,因为您没有更新i