C语言问题(73-5.6)

来源:百度知道 编辑:UC知道 时间:2024/06/22 07:30:32
在三位正整数(100~999)中,找出:三位数字之积为48,三位数字之和为12的数。
void main()

int i.j,m;
clrscr();
for(i=1;i<10;i++)
for(j=0;j<10;j++)
for(m=0;m<10;m++)
if(i*j*m==48&&i+j+m==12)
printf("%d%d%d\n",i,j,m);


这个程序,是第一个for从表达式1开始,第二个、第三个for也是从表达式1开始。
然后又是第一个、第二个for不变,第三个for从表达式3开始。
接着,第一个for不变,第二个for,第一次从for的表达式3开始,而第三个又重新开始。
也就是100 101 102 103 104 105 106 107 108 109 110 111......
是这样吗?
我有点昏

通俗的讲这三个for的关系就像是钟表的时分秒针一样第三个for相当于秒针,这样想会形象点

你这么去理解吧,第一个循环表示的是百位上的数字,从1开始,是因为百位数字不能为0,后面每个循环都表示每一位上的数字,也就是从100开始到999了啊。这样就可以理解了哈

#include<stdio.h>
void main()
{
int i,j,k,result=1;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
for(k=0;k<10;k++)
{
if((i*j*k)==48 && (i+j+k)==12)
{
result=i*100+j*10+k;
printf("%d ",result);
}
}
}
}
}