0Aurora0 @ 2022-04-06 17:01:11
#include<stdio.h>
int main(void)
{
int n;
int s=0;
float num;
scanf("%.1f",&num);
n=(int)(num*10);
while(n!=0)
{
s=s*10+n%10;
n=(int)(n/10);
}
printf("%.3f\n",(float)(s/1000));
return 0;
}
by Liking_Cpp_In_Luogu @ 2022-04-06 17:05:38
@0Aurora0 这题翻转字符串不就完了。。。思路要灵活点
by fly_boy @ 2022-04-13 01:37:15
本人的题解与楼主的类似,都是利用数字计算的特性实现了数字反转,不过个人的题解变量设置的更为复杂了。以下是对楼主代码的修改(请对照注释的位置):
#include <stdio.h>
int main(void)
{
int n;
int s = 0;
float num;
scanf("%f", &num); // 修改1
n = (int)(num * 10);
while (n != 0)
{
s = s * 10 + n % 10;
n = (int)(n / 10);
}
printf("%.3f\n", (float)s / 1000); // 修改2
return 0;
}
经测试,代码可满分通过。
by fly_boy @ 2022-04-13 01:39:54
@0Aurora0 主要是你的输入格式和强制转换的顺序不对
by 0Aurora0 @ 2022-04-17 23:01:46
@fly_boy 谢谢