东亚装饰招聘:c语言问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 07:00:12
main()
{
int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",n);
}
}
printf("\n");
}
谁能给我解释解释 为什么用 n/100来分解百位,用n/10%10来分解出10位,用n%l0来分解出个位?重点解释一下n/10%10和n%10这里,为什用%10的算法来求出某个位上的数??

n定义为整形,n/100缺省为整形,即整数,设n=250,则n/100=2,同样,n/10=25,n/10%10=5,十位数,n%10是求余,如n=233,n%10=3。

首先:n在100-1000以内的三位数
那么n/10得到的值就是去掉了末尾数字的2位数.
再%10,就得到2位数字的末尾,也就是原来的10位数.
用例子很好观察:327/10值是32,32%10就是2,2就是10位数

而%10取个位数更明显,三位数取10的模就是最后1位数,还是327 %10余数是7,商是32~

%号除法的意思是取余数,/号除法的意思是取整数.
比如123/100得到整数,也就是百位数1,
123/10得到整数12再%10得到余数,也就是十位数2,
123%10得到余数3,也就是个位数.

用n/10之后的得数与10取余,就把多余的数位给替换掉了。因为最后只能是余出一个比十小的数来放在10位的位置上面,如果跟10取余运算之后为零,即没有余数的话,那这一位就为零,理解这个问题的关键是要理解取余运算之后只有余数是有效位数,其他的就分离出去不管了。所以就分离出来了十位。个位同理

n/100是数学中[n/100],结果是整数.例如n=483,n/100=4
n%10是n除以10的余数.若n=483,n/10=48,n/10%10就是48%10=8
任何正整数除以10的余数都是个位数!

呵呵,这个你再看看你的程序里有没有符号错误哦