输出整数的位数、按位输出(两种)以及逆序输出

本次数字的基本操作及解释

本次操作包括:
①求数字位数
输入一个数字,输出有几位数字。
例如输入465132
输出:6位
②数字逐位从高位到低位输出
输入一个数字从高位低位逐渐输出。
例如输入465132
则每一位输出 4 6 5 1 3 2 前面为每一位数字输出
③数字逐位从低位到高位输出
输入一个数字从高位低位逐渐输出。
例如输入465132
则每一位输出 2 3 1 5 6 4 前面为每一位数字输出
④数字逆序输出
例如输入465132 输出231564 前面整体为一个数

①求数字所占位数

int NumberLength(int number)
{
	int Length = 0;
	while (number != 0)
	{
		number /= 10;
		Length++;
	}
	return Length;
}

在这里我们给函数传入我们输入的值。

int number;
	printf("please input number:");
	scanf_s("%d", &number);
	printf("这个数有%d位\n", NumberLength(number));

我们通过每次对于输入的数字每次进行除10处理甩去最后一位数字,然后长度从1开始,每次删除一位数字之后让长度+1
输出位数

②数字逐位从高位到低位输出

void PrintFromMax(int number)
{
	int Putnumber;
	int Length = NumberLength(number);  //获得数字位数
	int MaxBit = pow(10,Length-1);    //获得以10为底数,指数为位数-1的值(后面解释)
	while (number != 0)
	{
		Putnumber = number / MaxBit;   //获得最高位
		printf("%d\t", Putnumber);           //输出最高位
		number %= MaxBit;                    //甩掉最高位
		MaxBit /= 10;                             
	}
}

我们在获得以10为底以位数-1为指数的求解目的是为了获得最高位:
举例:输入465132
那么MaxBit的值就是 10 的 5 次方 及就是100000
那么用465132 / 100000 的时候就可以获得最高位的数组4
那么再用这个数字465132%100000进行操作时获得65132将最高位删除
后面不断进行 MaxBit / 10 来获得每一位的最高位,并且再获得之后再次丢弃
知道输入的数字等于0结束。

③数字逐位从低位到高位输出

void PrintFromMin(int number)
{
	int PutNumber;
	while (number != 0)
	{
		
		PutNumber = number % 10;
		printf("%d\t",PutNumber);
		number /= 10;
	}
}

从低位到高位的输出,我们先通过取余获得最后一位:
例如 465132 % 10 得到 2 然后利用 465132 / 10 去除最后以为 让最后一位变成3
不断循环操作 知道输入的数字变成0

④数字逆序输出

int Reverse(int number)
{
	int PutNumber;
	int Multiply = 1;
	int Reserse = 0;
	int Length = NumberLength(number);
	int MaxBit = pow(10, Length - 1);
	while (number != 0)
	{
		PutNumber = number / MaxBit;
		Reserse += PutNumber * Multiply;
		number %= MaxBit;
		MaxBit /= 10;
		Multiply *= 10;
	}
	return Reserse;
}

上述过程相对于从低位到高位输出来说,只是在甩掉数字之前把数字保留下来
然后进行以下操作:
例如:输入465132
465132 % 10 获得 2 然后操作2*1
甩掉2之后 46513 % 10 获得 3 然后操作3✖10 然后和前面2×1相加
甩掉3之后 4651 % 10 获得 1 然后操作1×100 然后和前面2×1 3✖10 相加
以此类推 知道输入的数字变成0 退出 然后输出加起来的数字

数字的按位输出操作,逆序操作,输出位数的操作,难度不大,而且逻辑过程比较容易理解,所以就不用图解动画来展示,每一个操作,上面都给了一个例子实现操作的过程。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页