题目描述
输入一个不小于 100 且小于 1000,同时包括小数点后一位的一个浮点数,例如 123.4,要求把这个数字翻转过来,变成 4.321 并输出。
输入格式
一行一个浮点数
输出格式
一行一个浮点数
输入样例
123.4
输出样例
4.321
参考代码
#include "stdio.h"
//由于该题提及仅含有一位小数
//所以只需要*10、%10就可得到小数位也就是输出的第一位
//计算得到结果的第一位
int reFirst(float decimals) {
return (int)(decimals * 10) % 10;
}
//计算得到结果的后三位
int reLast(float decimals) {
//输出结果的后三位
int last = 0;
//用于中间处理 将小数转化为整数方便处理
int decimalsInt;
//自动转化,将损失小数位
decimalsInt = decimals;
//不断除以10和取余10获得decimals的最后一位数值
while(decimalsInt != 0) {
last = (last * 10) + (decimalsInt % 10);
//除以10可"移除"decimals的后一位数字
decimalsInt /= 10;
}
return last;
}
int main(){
//不小于100且小于1000的小数,且含有一位小数
float decimals;
//输入小数
scanf("%f",&decimals);
//输出结果的第一位
printf("%d",reFirst(decimals));
//输出小数点
printf(".");
//输出结果的后三位
printf("%d",reLast(decimals));
return 0;
}
Note:该题为确定的小数位,如果不确定位数可试用数组读取的方式倒转