这道题纠结死了...很早就看到了,就是a不了,今天照着网上搜的代码一点点改,最后发现scanf里边得用%lf %lf 真纠结,像这种高精度的题真烦人 #include <stdio.h> #include <math.h> int main(void) { int count=0; double n,m; double k,result; while (scanf("%lf %lf",&n,&m) != EOF && n) { printf("Sample #%d/n",++count); k = m/n/810.0; k = log(k); result = (k/log(0.5)) * 5730.0; if (result<10000) { result = (int)(result/100.0 +0.5); result *= 100.0; } else { result = (int)(result/1000.0+0.5); result *= 1000.0; } printf("The approximate age is %.lf years./n/n",result); } return 0; }