将一个整形为1234的数,修改为整形是4321并打印。

一、做题思路:

此题注意,这一题是将一个数个各个位上的数字逆序并形成一个新的数字,而并非仅仅只是将其逆序打印。

1.出现各个位数上的数字

出现数字41234 % 10(1234 / 10=123)
出现数字3123 % 10(123 / 10=12)
出现数字212 % 10(12 / 10=1)
出现数字11 % 10

需要掌握:取余操作符除以操作符

2.由上面的数字生成新的数

现在已经得出了每个位上的数字,那么如果得到新的数呢?

就比如说需要得到4321,那么就应如下:

4321=4000+300+20+1,所以我们就需要分别得到4000、300、20以及1。

4000(1234 % 10)* 1000
300

(123 % 10)* 100

20(12 % 10)* 10
1(1 % 10)*1

理清了思路,但是注意的是,我们写的代码是为了方便,而不可能是将这么繁琐的程序写出来。所以利用循环语句写代码。

需要掌握:循环语句

利用循环的思想考虑:如何才能利用一个到两个的程序就运行出这个最终的值呢?我们先考虑一下它的循环条件:1234一共有4位数,那么循环次数肯定便是4次。所以很容易就可以写出for循环:

for(int i = 0;i <= 4;i ++)

此时,循环四次就是为了分别得到各个数。然后再思考,再循环过程中,我们每得到一个位的数字,我们要怎么做呢?这道题其实就是为了求和算出逆序后的值,所以其实就是求和。

接着假设这个起始值是a,最终值是sum;先令sum=0,那么 sum=sum*10+a%10 ,我们便可以求出4。而在第二趟循环中,再给a / 10,再令 sum=sum*10+a%10 ,便可以得到43。同理循环四次,最终可以得到4321这个数。

二、扩充知识点:

1.操作符

/

675/10==6

%

取模(求余数)675%10==7

2.循环语句

while 语法结构

while(表达式)
    循环语句;

for 语法结构

for(表达式1;表达式2;表达式3)
    循环语句;

表达式1初始化部分,用于初始化循环变量。

表达式2条件判断部分,用于判断循环时候终止。

表达式3调整部分,用于循环条件的调整。

do while 语法结构

do
    循环语句;
while(表达式);

三、最终代码:

//从键盘输入一个整形:输出逆序结果
#include <stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);

	int i = 0;
	int sum = 0;

	for (i = 0; a > 0; i++)
	{
		sum = sum * 10 + a % 10;
		a = a / 10;
	}
	
	printf("%d\n", sum);
	return 0;
}

好了今天的学习就到这里啦,如果有什么错误,望指正,谢谢大家啦!祝大家天天向上!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安心学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值