分析: 水仙花数的定义是各位数字之和等于该数本身的三位数字。

我们首先要建立循环,能够将所有的三位数输出;

还要建立判断条件,每输出一个数,判断它是否为水仙花数,若是,则输出,若不是,则继续循环,不输出。

还要想办法将三位数拆开,才能进行判断。

源代码如下,可复制:

#includeint main(){int number, a, b, c;for(number=100;number<=999;number++)//输出所有的三位数{ a = number / 100;//取得百位数b = number % 100 / 10;//取得十位数c = number % 10;//取得个位数if (number == a * a * a + b * b * b + c * c * c)//判断是否为水仙花数printf("%5d", number);}return 0;}

当然,代码并不唯一,以下代码也是可以的:

#includeint main(){int i, a, b, c;for(i=100;i<1000;i++){a = i / 100;b = (i - a * 100) / 10;c = i % 10;if (a * a * a + b * b * b + c * c * c == i)printf("%d ", i);}return 0;}

如果想要在窗体上以每行2个数的格式输出所有的水仙花数,则:

#includeint main(){int i, a, b, c,n=0;for(i=100;i<1000;i++){a = i / 100;b = (i - a * 100) / 10;c = i % 10;if (a * a * a + b * b * b + c * c * c == i){printf("%d ", i);n++;if (n % 2 == 0)printf("\n");}}return 0;}