问题描述:输入一个整数,顺序逆序输出输出整数的每一位,并输出整数的位数。
实现:本代码用的都是最基本的C语言知识,适合初学者
#include<stdio.h>
int main()
{
int count = 0;
int a,i;
int temp;
printf("Please input the integer:");
scanf("%d",&a);
temp = a;
if(a>=10000||a<=0)//判定数在0~10000范围内
{
printf("Wrong integer,please input the number between 1~9999.");
return 0;
}
/*让输入的数先模10,再整除10,同时记录位数,如123
一次循环后模10输出个位3,除以10得到12,count=1
二次循环后模10输出十位2,除以19得到1,count=2
三次循环后模10输出百位1,除以10得到0,count=3
*/
while(a!=0)
{
count++;
printf("%d ",a%10);
a=a/10;
}
printf("\nThe bit of integer is %d.\n",count);//输出位数
/*temp存的是输入的值
当已经知道输入的位数时,便可正序输出
如已知123的位数为3
一次循环,123整除100得百位1,123模100得23
二次循环,23整除10得十位2,23模10得3
三次循环,3整除1得个位3,3模1得0,结束
*/
while(temp!=0)
{
int bit = 1;
for(i = 0;i<count-1;i++)
{
bit*=10;
}
count--;
printf("%d ",temp/bit);
temp = temp%bit;
}
return 0;
}