下面是一个简单的C语言程序,用于检测水仙花数。
#include <stdio.h>
int main()
{
int num, sum, temp;
printf("请输入一个三位数:\n");
scanf("%d", &num);
temp = num;
sum = 0;
while (temp != 0)
{
sum = sum + (temp % 10) * (temp % 10) * (temp % 10);
temp = temp / 10;
}
if (num == sum)
{
printf("%d是一个水仙花数\n", num);
}
else
{
printf("%d不是一个水仙花数\n", num);
}
return 0;
}
该程序通过一个while循环来计算输入的三位数的每一位的三次方之和,并将其与原始输入进行比较。如果它们相等,则该数是水仙花数。
代码解释:
- 定义三个变量:num存储用户输入的数字,sum存储每一位数字的三次方之和,temp是num的副本,将用于循环中。
- 通过printf函数提示用户输入一个三位数,并使用scanf函数读取输入。
- 将输入的num存储在temp中,以便在循环中使用。
- 使用while循环计算每个数字的三次方之和,并将其存储在sum中。
- 检查sum是否等于num。如果是,说明输入的数字是水仙花数。否则,说明输入的数字不是水仙花数。
- 使用printf函数输出结果并返回0。