如何取一个数的每一位?这是一个函数判断水仙数的程序,数先对10取余可以得到个位数,再对10自除,再对10取余,又可以得到倒数第二位,利用这样的逻辑,可以知道该数每个数位上的数,但是先要用一个循环知道该数有多少个数位。#include<stdio.h>#include<math.h>int dig_flower(int n){ int i=0,sum=0,t; t=n; //先保存下来n值 while(n) //计算一个数有多少位 {i++; n/=10; } n=t; //把值重新赋给n while(n) //进行水仙花数计算 {sum+=pow(n%10,i); n/=10; } return sum;}int main(){ int n,m; scanf("%d",&n); m=dig_flower(n); if(n==m) printf("%d是水仙花数\n",n); else printf("%d不是水仙花数\n",n); return 0;}