用c语言使用函数输出水仙花数:输入两个正整数m和n(1≤m、n≤l 000),输出m-n之间的所有满足各位数字的立方和等于它本身的数。要求定义并调用函数is( number)判断umber的各位数字之立方和是否等于它本身、试编写相应程序。
时间: 2023-05-13 18:07:22 浏览: 205
以下是用 C 语言编写的程序,可以输出 m-n 之间的所有水仙花数:
```c
#include <stdio.h>
int is(int number);
int main() {
int m, n, i;
printf("请输入两个正整数 m 和 n(1≤m、n≤1000):");
scanf("%d %d", &m, &n);
printf("m-n之间的所有水仙花数为:\n");
for (i = m; i <= n; i++) {
if (is(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
int is(int number) {
int sum = 0, temp = number;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == number;
}
```
如果您有任何关于这个程序的问题,欢迎随时问我。
相关问题
用c语言实现以下代码:输入2个正整数m和n(1≤m,n≤1000),输出m~n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。要求定义并调用函数int is(int number)判断number是否为水仙花数。
好的,以下是代码实现:
```c
#include <stdio.h>
#include <math.h>
int is(int number);
int main()
{
int m, n;
printf("请输入两个正整数m和n(1 ≤ m,n ≤ 1000):");
scanf("%d%d", &m, &n);
printf("m到n之间的水仙花数为:");
for (int i = m; i <= n; i++)
{
if (is(i))
{
printf("%d ", i);
}
}
return 0;
}
int is(int number)
{
int sum = 0;
int temp = number;
while (temp)
{
sum += pow(temp % 10, 3);
temp /= 10;
}
if (sum == number)
{
return 1;
}
else
{
return 0;
}
}
```
在上面的代码中,我们定义了一个名为 `is` 的函数,用于判断一个数是否为水仙花数。在主函数中,我们先输入两个数m和n,然后使用for循环遍历m到n之间的所有数,判断它们是否为水仙花数,如果是,则输出。
输入2个正整数m和n(1≤m,n≤1000),输出m~n之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。要求定义并调用函数int is(int number)判断number是否为水仙花数,用c语言编写程序
好的,我会为您解答这个问题。
以下是完整的 C 语言程序,您可以直接复制粘贴运行:
```c
#include <stdio.h>
int is(int number);
int main()
{
int m, n;
printf("请输入两个正整数m和n(1≤m,n≤1000):");
scanf("%d%d", &m, &n);
printf("%d~%d之间的所有水仙花数为:\n", m, n);
for (int i = m; i <= n; i++)
{
if (is(i))
{
printf("%d ", i);
}
}
printf("\n");
return 0;
}
int is(int number)
{
int sum = 0, temp = number;
while (temp)
{
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == number;
}
```
程序中使用了一个名为 `is` 的函数来判断一个数是否为水仙花数。这个函数的实现很简单,就是将输入的数的每一位的立方相加,如果结果等于原数,就说明这个数是水仙花数。
在 `main` 函数中,我们先输入两个正整数 m 和 n,然后循环遍历 m~n 之间的所有数,如果是水仙花数,就输出。
希望我的回答能够帮到您!