有疑问,为什么我写的这个代码没有输出东西???

#include<stdio.h>
int main()
{
	int i,j,k,n=0;
	for(i=1;i<2019;i++)
	{
		for(j=1;j<2019;j++)
		{
			for(k=1;k<2019;k++)
			{
				if((i<2019)&&(j<2019)&&(k<2019)&&(i!=j)&&(i!=k)&&(j!=k)&&(i+j+k==2019))
				{
					n++;	
				}
			}
		}
	}
	printf("%d",n);
	return 0;
} 

 

至少会输出 0 

if((i<2019)&&(j<2019)&&(k<2019)&&(i!=j)&&(i!=k)&&(j!=k)&&(i+j+k==2019))

当满足你写的这个条件,n才会自增(n++),变成其他数字,最后就输出n的结果;如果全部循环都不满足,那么他至少会输出0;或者说,循环次数过多,cpu还在运算当中,等会就会有输出结果了!另外,帮你计算过了,该程序需要循环八十多亿次,肯定会有些耗时。

循环次数

if((i<2019)&&(j<2019)&&(k<2019)&&(i!=j)&&(i!=k)&&(j!=k)&&(i+j+k==2019))

你想到达什么目的? 当条件满足时,你可以直接在最里面的循环输出 i, j, k,n 的值。 就可以看到问题。 

你的循环次数太大了,程序判断很慢,你把数全变成20过一会就出来了,说明你这个题目这样写不提倡

有输出,只是循环太久。稍微等一会。2032128