C 输出错误,但我可以';我不能指出错误

C 输出错误,但我可以';我不能指出错误,c,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)); } } } #包括 int main() { int x,y; 对于(x=100;x而言,问题在于输出量太大,导致

我试着打印两个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));
        }
    }
 }
#包括
int main()
{
int x,y;

对于(x=100;x而言,问题在于输出量太大,导致终端的回滚缓冲区溢出。因此,您认为第一个输出编号可能是其他被切断的编号的结尾。这使您相信程序给出的输出不正确

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

prog > output.txt
另一个建议是在单独的行上输出每个结果,并在输出行上提供
x
y
值,以便您可以在一行上查看输入和结果:

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

这样,您的输出就不会模棱两可,您的问题将表现为某些缺少的输出,而不是导致您假定输出不正确。

因为当您将较大的数字相乘,如
999*999
时,结果值将大于int的范围。因此您必须使用
long

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

你的
int
s可能太小了吗?
sizeof(int)
会说什么?“当它被设置为更大的值(如5001000)时,答案是错误的。”这意味着什么?由于循环边界的原因,
x
y
都不能达到1000,所以我不确定你的意思。阅读:roliu-我说当我将这两个for循环中的条件都更改为XY时,你可以从
打印
INT\u MAX
以查看
INT
可以处理的最大值。非常感谢