c语言,for语句编写程序,输出所有的水仙花数
时间: 2023-05-20 10:06:07 浏览: 101
以下是C语言的for循环程序,用于输出所有的水仙花数:
```c
#include <stdio.h>
int main() {
int i, j, k, n;
for (n = 100; n < 1000; n++) {
i = n / 100;
j = (n / 10) % 10;
k = n % 10;
if (i * i * i + j * j * j + k * k * k == n) {
printf("%d ", n);
}
}
return 0;
}
```
这个程序会输出所有的三位数水仙花数,即153、370、371和407。
相关问题
水仙花数是各位数字立方之和等于数字本身的三位整数,如153是水仙花数,因为153=13+53+33,利用C语言中的while语句编写程序求出所有的水仙花数并输出。
很好,下面是使用while循环的C语言程序:
```c
#include <stdio.h>
int main() {
int num = 100;
int digit1, digit2, digit3, tmp;
while (num < 1000) {
digit1 = num / 100; // 获取百位数
digit2 = (num / 10) % 10; // 获取十位数
digit3 = num % 10; // 获取个位数
tmp = digit1*digit1*digit1 + digit2*digit2*digit2 + digit3*digit3*digit3; // 计算立方和
if (tmp == num) { // 判断是否为水仙花数
printf("%d\n", num); // 输出水仙花数
}
num++; // 继续下一个数的判断
}
return 0;
}
```
程序中使用了一个while循环,从100到999遍历了所有的三位数,然后依次计算每个数的百位数、十位数和个位数,计算立方和,判断是否等于该数本身。如果相等,则输出该数。
用c语言写一个输出所有水仙花数
好的,让我来回答你的问题。下面是用 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 是一个水仙花数", num);
else
printf("%d 不是一个水仙花数", num);
return 0;
}
```
如果你希望输出一定范围内的所有水仙花数,可以在程序中加上循环和条件语句,例如:
```
#include <stdio.h>
int main()
{
int num, originalNum, remainder, result = 0, i;
printf("输入要输出的范围:");
scanf("%d", &num);
printf("在 1 到 %d 之间的所有水仙花数为:\n", num);
for (i = 1; i <= num; i++)
{
originalNum = i;
result = 0;
while (originalNum != 0)
{
remainder = originalNum % 10;
result += remainder * remainder * remainder;
originalNum /= 10;
}
if (result == i)
printf("%d ", i);
}
return 0;
}
```
这样就可以输出指定范围内的所有水仙花数了。希望我的回答能够帮到你!
阅读全文