C語言之如何求三次方根
C語言求三次方根
前話
說到C語言求根,我們一般會想到用sqrt(x)函數(shù),它的輸入值和返回值都是double型,x取整將會導(dǎo)致編譯器錯誤。但是sqrt(x)只能求x的二次方根,求x的三次方根要用到pow(x,y)函數(shù)。
pow(x,y)聲明在"math.h"頭文件中,和sqrt(x)不同,pow(x,y)的x和y允許取整數(shù)值,也可以是double。
錯誤示范
要求x的三次方根,就是求x的1/3次方,一開始,我這樣寫:pow(x,1/3);看看代碼和運(yùn)行結(jié)果。
#include<stdio.h> #include<math.h> int main(){ double a=27, b=1/3; printf("%lf", pow(a, b)); return 0; }
結(jié)果是1,也就是x的0次方,為什么會這樣?
這和計(jì)算機(jī)的運(yùn)算有關(guān),還記得老師講過,整形和整形的運(yùn)算結(jié)果只能是整形,而C語言保留整形的方法不是四舍五入,而是九舍零留;也就是1/3=0.3333...=0
正確的打開方式
要想保留1/3的小數(shù)部分,那得這么寫:pow(x, 1.0/3);看看運(yùn)行結(jié)果。
#include<stdio.h> #include<math.h> int main(){ double a=27, b=1./3; //給1加了個小數(shù)點(diǎn),會被認(rèn)成是浮點(diǎn)型數(shù) printf("%lf", pow(a, b)); return 0; }
計(jì)算成功!
延伸
由此包括倒數(shù),負(fù)數(shù)次方也能夠計(jì)算了。
#include<stdio.h> #include<math.h> int main(){ double a=27, b=-1./3; //計(jì)算27的負(fù)三分之一次方,結(jié)果應(yīng)為三分之一 printf("%lf", pow(a, b)); return 0; }
C語言中,開3次方用什么?
question
: 開平方用 sqrt(), 開三次方用什么???answer
: 開立方也就是求 1/3 次方, 所以可以用pow()函數(shù)
example:
#include <stdio.h> #include <math.h> int main() { ? ? double a = pow(8, 1.0 / 3); ? ? printf("%f\n", a); ? ? return 0; }
程序運(yùn)行結(jié)果:
a = 2.000000
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用C++和Direct3D (d3d)獲取屏幕截圖并根據(jù)傳入分辨率進(jìn)行縮放圖片大小(最新推薦)
這篇文章主要介紹了使用C++和Direct3D (d3d)獲取屏幕截圖并根據(jù)傳入分辨率進(jìn)行縮放圖片大小,本文給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04C++連接mysql的方法(直接調(diào)用C-API)
首先安裝mysql,點(diǎn)完全安裝,才能在在安裝目錄include找到相應(yīng)的頭文件,注意,是完全安裝,需要的朋友可以參考下2017-06-06c語言實(shí)現(xiàn)把文件中數(shù)據(jù)讀取并存到數(shù)組中
下面小編就為大家?guī)硪黄猚語言實(shí)現(xiàn)把文件中數(shù)據(jù)讀取并存到數(shù)組中。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12