求解程序关于求取3位数字中十位数字出现的问题
这个程序是求解水仙花数,即3位数中的百位、十位、个位的立方和等于这个三位数,比如153程序如下:
程序代码:
#include<stdio.h> #include<windows.h> void main() { /********************************************* int i,a,b,c; a=b=c=0; for (i=100;i<1000;i++) { a=i/100; b=(i-a*100)/10; c=i-a*100-b*10; if ((a*a*a+b*b*b+c*c*c)==i) printf("%d ",i); } printf("\n"); system("pause"); /*********************************************/ int i; int a1,b1,c1; a1=b1=c1=0; for (i=100;i<1000;i++) { a1=i/100; b1=(a1%100)/10; c1=i-a1*100-b1*10; if ((a1*a1*a1+b1*b1*b1+c1*c1*c1)==i) printf("%d ",i); } printf("\n"); system("pause"); }问题:
程序中,上下两个部分基本上是一样的,我就是把十位数稍微改了下,想方便一点,但是为什么出的结果就是不一样呢?
上面的部分将全部水仙花数列了出来,但是下面的部分只列了最后一个。
这个是什么原因呢?