C语言 数据处理

在不使用scanf函数如何对输入的数进行逆序输出呢?首先要得到该数的位数,因为需要在顺序输出里使用。

代码如下:

int Getfigure(int n)
{
	int tmp=0;        //计算循环次数
	while(n != 0)
	{
		n /= 10;
		tmp++;
	}
	return tmp;       //该数的位数
}

其次要清楚该处理什么样特点的数,对这个数的个位进行处理。

例如:123 先对3进行处理,用这个数对10求余得到3。但又如何处理剩下的数呢,这个时候还要利用“神奇”的数字10,对123这个数进行除10的操作,剩下12,再循环算一次剩下1,最后一共计算了3次,也就是该数的位数。

代码如下:

void Reverse(int n)
{
	while(n != 0)
	{
		printf("%d",n%10);
		n /= 10;
	}
	printf("\n");
}

运行结果:


那么又如何顺序输出该数呢?

其实顺序输出就是对最高位进行处理。

例如:123 用该数对10的2次方进行除法运算剩下1,这个值就是需要得到的值。同时该数要对10的2次方求余得到剩下的23,并进行循环, 得出结果。

代码如下:

void PrintOrder(int n)
{
	int figure=Getfigure(n);//求出n的位数
	int high=(int)pow((float)10,(float)figure-1); //对最高位处理
	int tmp;
	while(high != 0)
	{
		tmp = n / high;
		n %= high;
		high /= 10;
		printf("%d",tmp);
	}
	printf("\n");
}

运行结果:

这样就基本完成了对数据的处理,但未对负数以及0进行处理还需改进。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值