c语言写一个求100到999之间所有水仙花数的和(请用while语句)
时间: 2024-02-05 09:04:45 浏览: 68
好的,我可以回答这个问题。以下是符合要求的代码:
```c
#include <stdio.h>
int main() {
int num, sum = 0;
int digit1, digit2, digit3;
num = 100;
while (num <= 999) {
digit1 = num / 100;
digit2 = (num / 10) % 10;
digit3 = num % 10;
if (num == digit1*digit1*digit1 + digit2*digit2*digit2 + digit3*digit3*digit3) {
sum += num;
}
num++;
}
printf("100到999之间所有水仙花数的和为:%d\n", sum);
return 0;
}
```
希望能够帮到你!
相关问题
c语言中用while语句写一个求100到999之间所有水仙花数的和
好的,这个问题是计算问题,我可以回答。这里是代码:
```
#include <stdio.h>
#include <math.h>
int main()
{
int i, num, sum = 0;
int a, b, c; // 分别表示百位、十位和个位
for(i = 100; i <= 999; i++)
{
num = i;
a = num / 100;
num %= 100;
b = num / 10;
c = num % 10;
if(i == pow(a, 3) + pow(b, 3) + pow(c, 3))
sum += i;
}
printf("100到999之间所有水仙花数的和是:%d\n", sum);
return 0;
}
```
用c语言的do…while语句输出100~999之间所有的水仙花数
水仙花数是指一个三位数,其各位数字立方和等于该数本身。比如153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。用C语言编写一个do...while循环来找出100到999之间的所有水仙花数,可以按照以下步骤:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, digit1, digit2, digit3;
int cube_sum;
do {
num = 100; // 开始从100开始检查
while (num <= 999) { // 循环直到达到999
// 分离出每一位数字
digit1 = num / 100;
digit2 = (num % 100) / 10;
digit3 = num % 10;
// 计算每位数字的立方和
cube_sum = pow(digit1, 3) + pow(digit2, 3) + pow(digit3, 3);
// 检查是否是水仙花数
if (cube_sum == num) {
printf("%d ", num); // 打印找到的水仙花数
}
num++; // 移动到下一个数
}
} while (true); // 因为do...while会先执行一次循环体再判断条件,这里设置为无限循环,实际应用中应加上终止条件
return 0;
}
```
阅读全文