1,for循環(huán)的條件錯了,應該是大于號。
創(chuàng)新互聯(lián)建站專注于綏中企業(yè)網(wǎng)站建設,響應式網(wǎng)站,商城開發(fā)。綏中網(wǎng)站建設公司,為綏中等地區(qū)提供建站服務。全流程按需求定制制作,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務
2,math.h中的函數(shù)用的時候要慎重,這些都是用來做復雜的數(shù)學計算的,時間開銷都很大。
3,求余只能對整數(shù)操作,這點是必然的。但浮點數(shù)是可以轉(zhuǎn)換成整數(shù)的,可以用強制類型轉(zhuǎn)換,或者設一個整型的中間變量。注意浮點數(shù)轉(zhuǎn)整數(shù)的時候是舍入的。當然,這里只是說這個事,不建議這樣做。
建議的做法有兩個,簡單點延用原有的思路,可以自己寫一個求10的k次方的函數(shù),用整數(shù)進行運算。
int pow10n( int k )
{
r = 1;
for(i=0; i k ; ++i)
r *= 10;
return r;
}
復雜點的做法是把求10的k次方這個運算和拆分n的循環(huán)嵌在一起,這個應該是正統(tǒng)的做法。
for( k=0; k3; ++k )
{
n %= 10;
}
當然,這個算法得到的結果是逆序的,4、3、2、1
這有兩個辦法,一個是把結果順序放到數(shù)組中,輸出的時候把順序倒過來,說白了是用中間變量。
另外一個辦法是用棧,或者用遞歸(本質(zhì)上也是用的棧),直接按逆序出結果。當然,這個方法對初學者有點難度了。
可以用在math.h頭文件中聲明的pow()函數(shù)求,例如:
要求a的b次方,就用pow(a,b)即可。
^符號在C中是位異或操作符,不用于求乘方。
extern float pow(float x, float y)
用法:#include math.h
功能:計算x的y次冪。
說明:x應大于零,返回冪指數(shù)的結果。
舉例:
// pow.c
#include stdlib.h
#include math.h
#include conio.h
void main()
{
printf("4^5=%f",pow(4.,5.));
getchar();
}
相關函數(shù):pow10
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。