用c语言实现从键盘输入一个三位整数,判断该数是不是一个水仙花数。当输入数据不正确时,要求给出错误提示。 说明:“水仙花数”是一个三位数,其各位数字的立方和等于该数本身。
时间: 2023-05-11 11:06:04 浏览: 533
以下是用C语言实现从键盘输入一个三位整数,判断该数是不是一个水仙花数的代码:
```
#include <stdio.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("请输入一个三位整数:");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0) {
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
if (result == num) {
printf("%d是一个水仙花数。\n", num);
} else {
printf("%d不是一个水仙花数。\n", num);
}
return 0;
}
```
如果输入的不是一个三位整数,程序会输出错误提示。
相关问题
从键盘上scanf输入一个整数,判断输出是否水仙花数(c语言)
水仙花数,也被称为阿姆斯特朗数(Armstrong number),是指一个n位数,其各位数字的n次方和等于该数本身。对于一个三位数而言,水仙花数是指一个三位数,它的每个位上的数字的立方之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
在C语言中,我们可以使用`scanf`函数从键盘接收一个整数输入,然后进行判断该数是否为水仙花数。下面是一个实现这一功能的示例代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, result = 0;
printf("请输入一个整数:");
scanf("%d", &num);
originalNum = num;
while (originalNum != 0) {
// 取当前最后一位数字
remainder = originalNum % 10;
// 将最后一位数字的三次方加到result中
result += pow(remainder, 3);
// 去掉最后一位数字
originalNum /= 10;
}
// 判断结果是否为水仙花数
if (result == num)
printf("%d 是水仙花数。\n", num);
else
printf("%d 不是水仙花数。\n", num);
return 0;
}
```
这段代码首先提示用户输入一个整数,然后计算这个整数每位上数字的三次方之和,并判断这个和是否等于原始输入的整数,从而确定输入的整数是否为水仙花数。
编写C语言程序,从键盘输入任意一个3位正整数,判断是否"水仙花数"
水仙花数是指一个三位数的各位数字的立方和等于该数本身,例如153就是一个水仙花数,因为1的立方+5的立方+3的立方等于153。
以下是实现该功能的C语言程序:
```c
#include <stdio.h>
int main() {
int num, digit1, digit2, digit3;
printf("请输入一个三位正整数:");
scanf("%d", &num);
digit1 = num / 100; // 获取百位数字
digit2 = num / 10 % 10; // 获取十位数字
digit3 = num % 10; // 获取个位数字
if (num == digit1*digit1*digit1 + digit2*digit2*digit2 + digit3*digit3*digit3) {
printf("%d是水仙花数\n", num);
} else {
printf("%d不是水仙花数\n", num);
}
return 0;
}
```
程序首先从键盘输入一个三位正整数,然后将其各位数字分别提取出来。通过计算各位数字的立方和,判断该数是否为水仙花数,并输出相应的结果。
阅读全文