输出错误但我无法查明错误

时间:2013-09-09 04:24:45

标签: c

我试图打印两个3位数的乘法。

 #include <stdio.h>
 int main()
 {
    int x,y;
    for(x=100;x<1000;x++)
    {
        for(y=100;y<1000;y++)
        {
            printf("%d,",(x*y));
        }
    }
 }

当我将计数值设置为像110这样的小数字时,这会生成正确的答案,但是当它被设置为更大的值(如500,1000)时,答案是错误的。

2 个答案:

答案 0 :(得分:1)

因为当你将更大的数字乘以999*999时,结果值将大于int的范围。所以你必须使用long代替

printf("%ld",(x*y));

答案 1 :(得分:0)

问题是输出太大,你的终端的回滚缓冲区溢出了。所以你认为第一个输出数字可能是其他一些被切断的数字的结束。这让你相信程序输出不正确。

将输出重定向到文件,并在编辑器中查看输出。

prog > output.txt

另一个建议是在单独的行上输出每个结果,并在输出行上提供xy值,这样您就可以在一行上看到输入和结果:

        printf("%d * %d = %d\n",x,y,(x*y));

这样,你的输出不会模糊不清,你的问题本身会表现为一些缺失的输出,而不是让你假设输出不正确。