如何为大输入调试此C程序?

时间:2016-10-11 22:00:06

标签: c

#include <stdio.h>
int main()
{
    int t, w;
    long int n, m, c, i, j, f = 0;
    long long int b, s = 1;
    scanf("%d",&t);
    for(w = 1; w <= t; w++)
    {
        f = 0;
        s = 1;
        scanf("%ld %ld %ld",&n,&m,&c);
        b = (long long int) n * m;

        if (c > b) {
            printf("%d\n",0);
        } else {
            for(i = 1; i <= n; i++) {
                for(j = 1; j <= m; j++) {
                    s = i * j;
                    if (s == c) {
                        f++;
                        s = 1;
                    }
                }
                printf("%ld\n",f);
            }
        }
        return 0;
    }
}

输入时:

1
1000000
1000000
1000000

但是在输出中,它没有显示f的值。为什么输出没有显示f的值?有没有与我使用的数据类型相关的问题?

1 个答案:

答案 0 :(得分:1)

至少这部分看起来很可疑。

您写道:

if(s==c)
    f++;
    s=1;

由于你的缩进,我认为你是在写:

if(s==c)
{
    f++;
    s=1;
}

但你真正写的是:

if(s==c)
{
    f++;
}
s=1;

根据你的缩进,我猜这不是你想要的。