c語言中怎樣用陣列和迴圈編7的階乘?

2025-02-01 12:35:05 字數 3863 閱讀 8406

1樓:網友

用陣列實現方法:

#include""

#define max 10//陣列最大空間。

#define n 7 //求7階乘。

main()

long a[max];

int i;

a[1]=1;

for(i=2;ia[i]=i*a[i-1];

printf("%d!=%ld",n,a[n]);執行結果:

press any key to continue

2樓:網友

不使用陣列都可以。

#include

main()

int i,s=1;

for(i=1;i<=7;i++)1到7變化,使用s一次一次去乘。

s=s*i;

printf("%d",s);

3樓:陳

為什麼要用陣列?你想用它存放什麼?

求7!只需:

include ""

main()

int i,s=1;

for(i=1;i<=7;i++)

s=s*i;

printf("%d",s);

用c語言編寫程式,求出1000的階乘.(利用陣列)

4樓:網友

答1樓:那是人家的要求。

答2樓:傻著算肯定會溢位,要過載乘法。

答3樓:這是試題,肯定有意義。

4樓說:我正在研究。

5樓:網友

這個數太大了。

光後面的0就有249個。

這樣的程式設計有意義嗎!

6樓:網友

就算寫出來了也沒用``鐵定溢位。

7樓:一碑電影

這個需要用陣列嗎???

用c語言編寫階乘

8樓:德溫瑜

#include

#define n 50 /*可以是任意乙個數的階乘,當然要計算機能夠存的下*/

int main()

int a[100], l=0, i, j;

for(i=0; i<100; i++)

a[i]=0;

a[0]=1;

for(i=2; i<=n; i++)

for(j=0; j<=l; j++)

a[j] *= i;

l+=3;for(j=0; j9)

a[j+1]+=a[j]/10;

a[j] %=10;

while(a[l]==0) l--;

for(i=l; i>=0; i--)

printf("%d", a[i]);

printf("");

看了 樓下兩個 用int 儲存 50!

感覺有點不可思議, 至少應該用double啊,用double雖然不能保證精度,但至少可以很接近結果。

3樓的 一句話:「老師說過,可以自已定義乙個型別來表示更大的數。。。

自己是可以定義,你可以定義任意型別。只不過需要你自己來實現。 50!這種問題 就相當於 大數 的操作。

求100的階乘,用c語言中的陣列怎麼來求啊?

9樓:以心

/這就得用到高廳餘精了。下面是我寫的,能輸出頃伏昌1~5000也階乘的,但不能指定某個數,如果想指定某個數的,就得改下程式。如果需要,**我q,646203846 #include#includechar str[5001][20000]; int len[5001]; void solvemul(char str,int n,char ans)return 0; }

c語言程式設計,求乙個數的值是其各位數階乘之和,不用陣列,用迴圈,下面這個程式哪錯了?

10樓:網友

x,y,z計算下乙個數時沒有重新初始化。

int i,j,k,p,l,m,n,x=1,y=1,z=1;

for(n=100;n<1000;n++)x=1,y=1,z=1;//重新初始化。

i=n%10;

k=n/100;

j=(n/10)%10;

11樓:敖翔政

i是最高位數::i=n/100;

k是中間的:k=n%10/10;

j是最小位:j=(n/10)%10;

用c語言寫程式:求n的階乘。要求用到陣列。

12樓:網友

首先明確一點,大數的階乘位數都很大,一般超過了long的位數,所以光用迴圈是不夠的。

我給你發了訊息,希望有幫助。

13樓:流年清淺_小豪

利用階乘的定義求解階乘。

#include

void main()

遞迴方法求階乘。

#include ""

long fact(int n)

void main()

14樓:曉神月

我個人認為,沒有那個老師會要求你做這道題用陣列,迴圈比較容易#include

mian()

printf("n!為:%d",m)

return 0}

15樓:匿名使用者

關於陣列用到哪個地方呢?題目沒有更詳細的嗎?

16樓:

你的意思是陣列每個元素儲存乙個數,然後陣列的每個數相乘來求階乘嗎?

我覺得用陣列沒必要吧。用for迴圈就可以做到了我寫一部分吧。

int i;

int j = 1;

for ( i = 1; i <=100; i++)j*=i;

醬紫就求得階乘了。

如何用c語言編寫n的階乘

17樓:網友

n = 1;

for(i = 1; i <= number; i++)n *= i;

就好了用遞迴也行,不過這樣最簡單了。

18樓:歐慶稱嘉惠

對於乙個數字n,不考慮溢位,可用下面的c程式f=1; //初始化。

for(i=2;i<=n;i++)

f*=n;結果在f中。

c語言中如何編寫n的階乘

19樓:飛喵某

1、開啟visual c++軟體,bai新建任務du,滑鼠左鍵點選檔案,選擇c++ source file:

2、輸zhi

入**,首先dao引入c語言標準回庫「# include 」,之答後在主函式里編寫程式,其實n的階乘就是從1到n的累積,只要編寫乙個for迴圈從1一直到n不停的求積就可以了:

3、編寫完成後,點選左邊的編譯按鈕 ,編譯完成後點選右邊的按鈕執行程式:

4、執行軟體後,debug裡面會生成exe的階乘可執行程式,開啟它這裡輸入5,按下回車程式就能計算出5的階乘了,至此就完成了程式的編寫:

20樓:兄弟連教育北京總校

思路:所謂n的階乘bai就是從1到n的累積du,所以可以通過乙個zhifor迴圈。

dao,從1到n依次求積即可專。

int main()

執行結果:(例如求5的階乘)

21樓:網友

運用乙個bai遞迴函式吧du。主函式樓主zhi自己寫吧。建議樓dao

主像這種簡單的程版序還是自己權多寫寫。凡事開頭難,多寫寫就會了。

int jiecheng(int n)

c語言中用指標和用下標訪問陣列元素的本質區別

兩者意思一樣,但是編譯器處理起來不見得一樣。就像樓上的例子a 2 跟 a 2 是乙個意思。但是對於編譯器來說a 2 是一種固定的寫法,因此對於位址偏移什麼的有固定的處理方式,而 a 2 在語法上應當分解為先算a 2再取值,如果編譯器不優化,完全按照這種定義去編譯的話,那麼就會有先算出a 2這個位址這...

C語言中FILE定義的陣列有什麼用?怎麼用

用於即將開啟使用的5個檔案,比如 f 0 fopen file0.txt r f 1 fopen file1.txt r f 2 fopen file2.txt r f 3 fopen file3.txt r f 4 fopen file4.txt r 象上述開啟後你就可以分別讀取每個檔案中的內容了...

C語言中,怎樣將一維陣列中的數,賦給二維陣列

可以採用兩種方式 1 按元素賦值 遍歷一維陣列,並將每個元素賦值到二維 內陣列的對應元素上容。或者遍歷二維陣列,將每個元素賦值為一維陣列對應值上。優點為操作靈活,可以按照需要任意賦值。2 當一維陣列和二維陣列型別相同,而且賦值順序與一維陣列中的儲存順序完全相同時,可以用memcpy的方式,直接一次性...