欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

输出整数位数,并正序,逆序输出各个位上的值

程序员文章站 2022-03-01 23:21:33
...

题目:给一个不多于5 位的正整数,要求∶
①求出它是几位数;
②分别输出每一位数字;

③按逆序输出各位数字,例如原数为321,应输出123。

一般来说,统计整数的位数有两种方法:
1.使用if和else if将情况列举出来
2.每次丢弃个位,利用n/=10循环使用

int main()
{
	int n;
	int temp = 0;//计数器
	scanf_s("%d", &n);
if (n == 0)
{
	printf("1");
}
	while(n!=0)
	{
		n /= 10;
		temp++;
	}
	printf("%d", temp);
}

顺序输出整数的每一位数字方法如下:
顺序输出即,得到高位数字,a = m / pow(10.0, temp - 1);利用除法,所得的商就是顺序输出的数字。m %= (int)pow(10.0, temp - 1);利用求余,删除高位数字,直到为零

#include<math.h>
int main()
{
	int n;
	scanf_s("%d", &n);
	int temp = 0;//位数
	int a=0;//返回值
	int m = n;
	if (n == 0)
	{
		printf("0");
	}
	while (n != 0)
	{
		n /= 10;
		temp++;	
	}
	while (m != 0)
	{
		a = m / pow(10.0, temp - 1);
		m %= (int)pow(10.0, temp - 1);//取余不能用double
		temp--;
		printf("%d  ", a);
	}
}

逆序输出整数的每一位:
对十取余,得到个位,丢弃个位
1.得到个位数字,n%10
2.丢个位数字,n/=10;其他进制类似处理(其他进制也是类似几进制就除等于几)

int main()
{
	int n;
	int temp = 0;
	scanf_s("%d", &n);

	while (n != 0)
	{
		temp = n % 10;
		n /= 10;
		printf("%d ", temp);
	}
	//另一种表达方法:使用do while语句
	/*if (n < 0)
	{
		printf("-");
		n = -n;
	}
		do
		{
			printf("%d", n % 10);
			n /= 10;
		} while (n != 0);*/
	}
相关标签: C阶段 c语言