今天呢我们照例沿着洛谷题单【入门1】顺序结构往下走,今天该给大家讲解【深基2.例7】数字反转了,我们先来看一下题目👇
题目描述
![](https://i-blog.csdnimg.cn/blog_migrate/aa1b63f113530d175b96126af6ec7728.png)
这道题首先明示了数据是 不小于100且小于1000 的 包括小数点后一位的一个浮点数,那么就是在告诉我们变量类型使用double 或者 float 就是OK的,然后再往下看,他要实现的就是把数字反过来写一遍,这个让我们人去做事很简单的,就是反着写就行,但是计算机是要用运算来解决一切问题的,那么我们就要找到数字反转前和数字反转后的内在联系
看的更加透彻一些,他就是把原来的百位换成了十分位(缩小了1000倍); 把原来的十位换成了个位(缩小了10倍); 把原来的个位换成了十位(扩大了10倍); 把原来的十分位换成了百位(扩大了1000倍)。
那这道题的思路就已经很明显了,话不多说,直接上代码啦~
C代码
#include <stdio.h>
int main()
{
double num1,num2;
int a,b,c,d,num;
scanf("%lf",&num1);
num=num1*10;
a=num%10;
b=num/10%10;
c=num/100%10;
d=num/1000;
num2=a+0.1*b+0.01*c+0.001*d;
printf("%.3f",num2);
return 0;
}
但是大家要注意的是我们在取原来那个数字的各位上数字的时候,大家要熟练掌握先用除法去掉无用的后几位然后对10取余的取位方法,最后大家注意在输出的时候要用%.3f的语句控制数据要以小数点后三位的格式输出
这就是这道题目的题解,希望可以对深陷其中的朋友们起到一些帮助~