C 输出错误,但我可以';我不能指出错误
我试着打印两个3位数的乘法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而言,问题在于输出量太大,导致
#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
可以处理的最大值。非常感谢