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のループに問題はありませんmaincountbox問題は関数 内でループしています

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 に答える