P5705【深基2.例7】数字反转
题目描述
输入一个不小于 100 100 100 且小于 1000 1000 1000,同时包括小数点后一位的一个浮点数,例如 123.4 123.4 123.4 ,要求把这个数字翻转过来,变成 4.321 4.321 4.321 并输出。
输入格式
一行一个浮点数
输出格式
一行一个浮点数
样例 #1
样例输入 #1
123.4
样例输出 #1
4.321
解题思路如下:
首先定义一个单精度浮点数,再定义一个变量记录小数部分,一个变量记录整数部分,题目要求输出样例为小数点后一位,所以小数部分可以直接输出作为结果的整数部分。至于结果的小数部分,可以写一个循环将原本的整数部分进行反转(相除和取模操作),最后以小数点为界线打印输出。
代码如下:
#include <stdio.h>
int main() {
float num;
scanf("%f", &num);
// 将小数部分提取出来
int decimal = (int) (num * 10) % 10;
// 将整数部分翻转
int integer = (int) num;
int reversed = 0;
while (integer > 0) {
reversed = reversed * 10 + integer % 10;
integer /= 10;
}
// 输出翻转后的浮点数
printf("%d.%d\n", decimal, reversed);
return 0;
}