1
光山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),光山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為光山上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的光山做網(wǎng)站的公司定做!
設(shè)計階乘函數(shù)。
按照數(shù)學(xué)定義,對于n的階乘,如果n為0,則返回1.
否則返回1*2*3*...*n的值。用循環(huán)實現(xiàn)。
2
在主函數(shù)中輸入要求階乘的值。
3
調(diào)用函數(shù)計算階乘。
4
輸出結(jié)果。
代碼:
int fac(int n)
{
int r = 1;
int i;
for(i = 2; i =n; i ++)
r*=i;
return r;
}
int main()
{
int n,r;
scanf("%d",n);
r = fac(n);
printf("%d!=%d\n",n,r);
}
#includestdio.h
voidmain(){
intn,result;
printf("請輸入一個數(shù)字,求它的階乘:");
scanf("%d",n);
result=calc(n);
printf("結(jié)果:%d",result);
}
intcalc(intn){
intresult=1,i;
for(i=n;i=1;i--)
result=result*i;
returnresult;
}
擴展資料
C語言函數(shù)的調(diào)用
函數(shù)定義好以后,要被其它函數(shù)調(diào)用了才能被執(zhí)行。C語言的函數(shù)是能相互調(diào)用的,但在調(diào)用函數(shù)前,必須對函數(shù)的類型進(jìn)行說明,就算是標(biāo)準(zhǔn)庫函數(shù)也不例外。
標(biāo)準(zhǔn)庫函數(shù)的說明會被按功能分別寫在不一樣的頭文件中,使用時只要在文件最前面用#include預(yù)處理語句引入相應(yīng)的頭文件。如前面使用的printf函數(shù)的說明是放在文件名為stdio.h的頭文件中。
f是fac()函數(shù)內(nèi)部的靜態(tài)變量,那么,f只在第一次進(jìn)入fac()函數(shù)時才執(zhí)行其初始化操作,以后都會跳過初始化操作。所以第一次執(zhí)行fac(1)函數(shù)時,f初始化為1,并乘以1,f仍為1;第二次執(zhí)行fac(2)時,跳過初始化操作,f=f*2,f為2;第三次執(zhí)行fac(3)時,跳過初始化操作,f=f*3,f為6;第四次執(zhí)行fac(4)時,跳過初始化操作,f=f*4,f為24;......以此類推。
其實這個只能算到12的階乘,因為13的階乘等于6227020800,它已經(jīng)大于2的31次方了,也就是超過了int所能表示的最大值了(溢出),所以你可以把int
改為double.
#include
stdio.h
#include
stdlib.h
double
f(int
n)
{
if(n==0||n==1)
return
1;
return
n*f(n-1);
}
int
main()
{
int
n,k,i;
printf("請輸入一個數(shù):");
scanf("%d",k);
for(i=1;i=k;i++)
{
printf("第%d個數(shù)為:",i);
scanf("%d",n);
printf("%d!=%f\n",n,f(n));
}
}
我把你寫的稍微改了一下,你看看。
#include stdio.h
main()
{
long n,sum=1;//10 以上的階乘就比較大了
int i;
printf("請輸入你要求的階乘:")
scanf("%d",n);//先輸入要求的數(shù)
for(i=n;i0;i--)//乘到1為止
{
sum*=i;
}
printf("%d != %d",n,sum);
return 0;
}
n的階乘就是從1到的累積,所以可以通過一個for循環(huán),從1到n依次求積即可。
參考代碼:
#include "stdio.h"
int main() {
int n,i,s=1;
scanf("%d",n);
for(i=1;i=n;i++)//for循環(huán)求累積
s=s*i;
printf("%d\n",s);
return 0;
}
/*
運行結(jié)果:(例如求5的階乘)
5
120
*/
擴展資料:?
return用法:
return返回一個數(shù)值的意思就是把return表達(dá)式后面表達(dá)式的值返回給調(diào)用他的函數(shù)。舉個例子:
int sum(int i,int j)
{
return i+j;
printf("這個語句不會被執(zhí)行,因為該子函數(shù)執(zhí)行到上面的return語句就無條件結(jié)束了");
}
main()
{
int a=10,b=11,c;
c=sum(a,b);
printf("%d",c);
}
分享名稱:c語言求階求乘函數(shù),求階乘的函數(shù)C語言
網(wǎng)站路徑:http://m.newbst.com/article12/phhegc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站策劃、App開發(fā)、App設(shè)計、網(wǎng)站內(nèi)鏈、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)