如果x的x次幂结果为10,你能计算出x的近似值吗?
显然,这个值是介于2和3之间的一个数字。
显然,这个值是介于2和3之间的一个数字。
请把x的值计算到小数后6位(四舍五入),并填写这个小数值。
需要用到的函数fabs(double x),求x的绝对值;pow(x,y),求x^y的值
答案:2.506184
- #include<stdio.h>
- #include<math.h>
- //以下是while循环实现
- int main()
- {
- double x=2.0;
- while(x<3.0)
- {
- x=x+0.00000001;//8个小数位的形式递增
- if(fabs(pow(x,x)-10.0)<0.000001)
- {
- //printf("%lf\n",x);//直接输出2.506184 ,就无法四舍五入
- printf("%.8lf\n",x);//输出8位小数然后我们再4舍5入
- }
- }
- }
- //以下是for循环实现
- int main1()
- {
- double x;//从2开始
- for(x=2.0;x<3.0;x+=0.00000001)//8个小数位的形式递增
- {
- //pow 函数求x的y次方,然后减去10.0再取绝对值看之差是否在10的-6次方以内以满足精度要求
- if(fabs(pow(x,x)-10.0)<0.000001)
- {
- printf("%.8lf\n",x);
- //break; //因为要求4舍5入所以多输出几个数字来做判断
- }
- }
- return 0;
- }