用C语言程序编程:从键盘输入两个正整数m和n (m>=1,n<=1000),输出m和n之间所有的“水仙花”数,要求每行显示2个水仙花数。“水仙花”数是指各位数字的立方和等于这个数。例如,153的各位数字立方和是13+53+ 33=153,所以153是一个水仙花数。
时间: 2024-02-11 14:08:29 浏览: 90
c代码-打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数 本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
以下是用C语言编写的程序,可以实现您的要求:
```
#include <stdio.h>
int main()
{
int m, n, i, num, sum, count = 0;
printf("请输入两个正整数m和n (m>=1,n<=1000):\n");
scanf("%d %d", &m, &n);
for (i = m; i <= n; i++) {
num = i;
sum = 0;
while (num) {
sum += (num % 10) * (num % 10) * (num % 10);
num /= 10;
}
if (sum == i) {
printf("%d ", i);
count++;
if (count % 2 == 0) {
printf("\n");
}
}
}
return 0;
}
```
程序中先通过 `scanf` 函数从键盘输入两个正整数 `m` 和 `n`,然后使用 `for` 循环遍历 `m` 到 `n` 之间的所有整数。对于每个整数,将其各位数字的立方和计算出来,并判断是否等于这个数本身。如果相等,则输出这个数,并将计数器 `count` 加 1。每输出两个数就换行。
希望能够帮助到您!
阅读全文