帮我用c语言写一段程序 要求如下所谓"水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如: 153是个"水仙花数”,因为153=13+33+53。输入一个100 - 99之间的3位整数,判断其是否为“水仙花数”,若是则输出“Yes"否则输出“No”。 输入样例1: 153 输出样例1: Yes 输入样例2: 100 输出样例2: No 输入样例3: 1000 输出样例3: Error Input!
时间: 2023-05-21 21:04:34 浏览: 48
好的,我可以帮你写这个程序。
程序如下:
```
#include <stdio.h>
int main() {
int num;
scanf("%d", &num);
if(num < 100 || num > 999) {
printf("Error Input!\n");
return 0;
}
int sum = 0;
int temp = num;
while(temp > 0) {
int digit = temp % 10;
temp /= 10;
sum += digit * digit * digit;
}
if(sum == num) {
printf("Yes\n");
} else {
printf("No\n");
}
return 0;
}
```
你可以把这段代码复制到你的 C 语言编辑器中,并运行它。当你运行时,程序将提示你输入一个数字,如果这个数字是一个“水仙花数”,则输出“Yes”,否则输出“No”。如果输入的数字不在100-999范围内,则输出“Error Input!”。
希望这可以帮到你!
相关问题
用c语言输出所有的“水仙花数”,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身
以下是用 C 语言输出所有的水仙花数的代码:
#include <stdio.h>
int main() {
int i, j, k;
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
int num = i * 100 + j * 10 + k;
if (num == i * i * i + j * j * j + k * k * k) {
printf("%d\n", num);
}
}
}
}
return 0;
}
这段代码会输出所有的水仙花数,即:
153
370
371
407
注意,这段代码只适用于三位数的水仙花数,如果要输出更高位数的水仙花数,需要修改代码。
用C语言编写打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数字本身
以下是用C语言编写打印出所有的“水仙花数”的代码:
#include <stdio.h>
int main() {
int i, j, k;
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
int num = i * 100 + j * 10 + k;
if (num == i * i * i + j * j * j + k * k * k) {
printf("%d\n", num);
}
}
}
}
return 0;
}
这段代码会输出所有的三位数水仙花数,即153、370、371、407。