c语言写一个求100到999之间所有水仙花数的和(请用while语句)
时间: 2024-02-05 20:04:45 浏览: 26
好的,我可以回答这个问题。以下是符合要求的代码:
```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;
}
```
写出100到999的所有水仙花数 C语言
可以使用循环语句和条件语句来实现输出100到999的所有水仙花数,以下是一个简单的C语言代码实现:
```c
#include <stdio.h>
#include <math.h>
int main() {
int num, digit, sum;
for (num = 100; num <= 999; num++) {
sum = 0;
int temp = num;
while (temp > 0) {
digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (num == sum) {
printf("%d\n", num);
}
}
return 0;
}
```
在上面的代码中,我们使用`for`循环从100到999遍历每个数字,然后使用一个临时变量`temp`来存储当前数字,使用`while`循环来将当前数字分离出每个位上的数字并计算它们的立方和得到`sum`,最后判断当前数字是否等于它的立方和,如果是,则输出该数字。需要注意的是,我们使用了math.h头文件中的`pow()`函数来计算数字的立方,因此需要在程序开头包含该头文件。