0

对于问题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;
}    
4

1 回答 1

3

for你的循环没有问题main。问题在您的countbox函数 中循环

if(x1 < x2){
    while((x1+i)<x2){
        if(getY(m, (x1+i), in) != (x1+i))
            count++;
    }
}  

一旦(x1+i)<x2条件变为真,它将永远为真,因为您没有更新i

于 2013-10-19T14:09:26.990 回答