(C语言)顺序逆序输出整数的每一位并打印整数位数

问题描述:输入一个整数,顺序逆序输出输出整数的每一位,并输出整数的位数。

实现:本代码用的都是最基本的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;
}

猜你喜欢

转载自blog.csdn.net/qq_41448334/article/details/84575777
今日推荐