c语言,输入一个三位数,判断是否是一个“水仙花数”,水仙花数是指3位数的各位数字的立方和等于这个三
#include<stdio.h>intsxh(intnumber)
;//sxh=水仙花数intmain(){inti;printf("输出一个三位数:")
;scanf("%d",&i)
;if(sxh(i)
)printf("thedata%5disyes\n",i)
;printf("\n");return0;}intsxh(intnumber) //定义判断水仙花数的函数{intsum=0,item,count=1,i=1,temp;temp=number; while(temp>=10) {count++; //判断位数temp/=10; } temp=number; while(i<=count) { item=temp%10;temp/=10;sum=sum+item*item*item;i++; } if(sum==number) return1; else return0;}
c语言编写水仙花数
#include <stdio.h> int main {int i,a,b,c; for(i=100;i<1000;i++) a=i%10; b=(i%100–i%10)/10; c=(i–i%10–b*10)/100 if(i==a*a*a+b*b*b+c*c*c) printf(“i是水仙花数字”); return 0;}
c语言水仙花数编程
在C语言中,我们可以使用循环和分解每一位的方法来计算一个数字是否是水仙花数。水仙花数是指一个n位正整数(n≥3),它的每个位上的数字的n次幂之和等于它本身。下面是一个简单的算法,用来判断并打印出100到999之间所有的水仙花数:
```C
#include <stdio.h>
#include <math.h>
int main() {
int i, j, k, n;
printf("水仙花数为:");
for(i = 100; i < 1000; i++) {
j = i / 100; //获取百位数
k = i / 10 % 10; //获取十位数
n = i % 10; //获取个位数
if(i == pow(j,3) + pow(k,3) + pow(n,3)) {
printf("%d ", i);
}
}
return 0;
}
```
这段代码首先使用for循环遍历了100-999之间的所有数字。然后,它使用除法和模数运算符将每个数字分解为其各个数位上的数字。接着,如果这个数的各位数字的立方和等于原来的数字,那么这个数字就是水仙花数,并将其打印出来。