sqrt的返回值类型是double型,你输出的时候用%d当然结果是错的了,可以试试类型转换,把最后一个printf语句改成如下:printf("%d\n",(int)sqrt(n));
因为sqrt的返回值是double类型,你用%d格式符会出错。应该写printf("%lf\n",sqrt(n));