•  先以1000以内整数为例 

#include<stdio.h>
int main()
{
  int num=0;
  int a,b,c;
  printf("请输入1000以内的数字:>");
  
  
  scanf("%d",&num);
  
  if(num<1000)
  {
	 a=num/100;//百位数字
         b=(num%100)/10;//十位数字
	 c=(num%100%10)/1;//个位数字
  	printf("%d\n%d\n%d\n",a,b,c);
  }
  else
  {
  	printf("这个数超过 1000,请重新输入");
  }
	return 0;
}
  •  其次我们来将整数范围扩大到任意整数  它的每位数由高到低的排列如下  

#include <stdio.h>

int main()
{
   int num=0;
   int i=0,j=0, n=0,s=0;
   printf("please 输入数字:>");
   scanf("%d",&num);
   
  for (s=1,n=1;s!=0;i++)
   {   
        n=n*10; 
    	s=num/n;  //判断整数位数如434/1000=0  i=3	  
   } 
   printf("它的位数是%d\n",i); 
  for (j=1,n=1;j<i;j++)
    {
    	 n=n*10; //如434为3位,n=100
    }
     printf("它的每位数分别是"); 
  for (s=num;n>=1;n=n/10)
   {    
 	     printf("%d\t",s/n);//得出最高位的数字
 	      s=s%n;          //  依次循环 得出次高位
   }
return 0;
}