该代码在大多数情况下都有效,但是当读取小数部分中带有前导零的分数时,结果是错误的:1.01 变为 11/10 而不是 101/100。
#include <cstdio>
int main()
{
unsigned long long x, y, nom, den;
scanf("%llu.%llu", &x, &(y=0));
for (den=1; den<=y; den*=10);
nom = x * den + y;
printf("%llu / %llu\n", nom, den);
return 0;
}
1.01
11 / 10

