方法一:嵌套循环法
```c
include include int main() { int i, a, b, c, sum; for (i = 100; i <= 999; i++) { a = i % 10; b = (i % 100 - i % 10) / 10; c = (i - i % 10 - b * 10) / 100; sum = a * a * a + b * b * b + c * c * c; if (sum == i) { printf("%d ", i); } } return 0; } ``` 方法二:数学运算法 ```c include int main() { int i, num, digit, sum; printf("水仙花数为:\n"); for (num = 100; num <= 999; num++) { digit = num % 10; sum = digit * digit * digit; num /= 10; while (num > 0) { digit = num % 10; sum += digit * digit * digit; num /= 10; } if (sum == num) { printf("%d ", num); } } return 0; } ``` 方法三:数组存储法 ```c include int main() { int i, num, digit, sum; int narcissistic_numbers; int count = 0; printf("水仙花数为:\n"); for (num = 100; num <= 999; num++) { digit = num % 10; sum = digit * digit * digit; num /= 10; while (num > 0) { digit = num % 10; sum += digit * digit * digit; num /= 10; } if (sum == num) { narcissistic_numbers[count++] = num; } } for (i = 0; i < count; i++) { printf("%d ", narcissistic_numbers[i]); } return 0; } ``` 方法四:递归法 ```c include int is_narcissistic(int num) { int sum = 0, digit; while (num > 0) { digit = num % 10; sum += digit * digit * digit; num /= 10; } return sum == num; } int main() { int i, count = 0; printf("水仙花数为:\n"); for (i = 100; i <= 999; i++) { if (is_narcissistic(i)) { printf("%d ", i); count++; } } return 0; } ``` 以上是几种常见的C语言编程求解水仙花数的方法,可以根据实际需求选择合适的方法进行实现。