题目描述
输入一个不小于 100100 且小于 10001000,同时包括小数点后一位的一个浮点数,例如 123.4123.4 ,要求把这个数字翻转过来,变成 4.3214.321 并输出。
1.题目分析:
这道题可以从多个角度解题,使用字符串逆序输出 或者进行数学计算。
2.题目思路
我使用的数学计算,首先定义一个单精度浮点数,定义一个变量记录小数部分,一个变量记录整数部分,由于题目只要求输出样例为小数点后一位,所以小数部分可以直接输出作为结果的整数部分。至于结果的小数部分,可以写一个循环将原本的整数部分进行反转(相除和取模操作),最后以小数点为界线打印结果,完。
3.代码演示:
#include <stdio.h>int main() {float num;scanf("%f", &num);// 将小数部分提取出来int decimal = (int) (num * 10) % 10;// 将整数部分翻转int integer = (int) num;//123int reversed = 0;while (integer > 0) {reversed = reversed * 10 + integer % 10;integer /= 10;}// 输出翻转后的浮点数printf("%d.%d\n", decimal, reversed);return 0;
}