c 程式設計 從鍵盤輸入數 求這數的階乘和

時間 2022-04-11 05:05:47

1樓:

for(m=1,m<=a,m++) 裡的是;而不是,

就拿第乙個說吧,因為第二個錯得很離譜了。。。

p,q,r都要先付初值1

2樓:

int a,b,c,d;

scanf("%d%d%d",&a,&b,&c);

d=f(a)+f(b)+f(c);

int f(i)

//我把樓上的改成遞迴了。但是有乙個非常需要注意的地方。int的取值範圍很小,所以這中遞迴方法能計算的數的範圍很小,超過一定值得數的階乘就超出了int的取值範圍。

計算結果也就不對了。要想寫乙個比較好的階乘計算工具就得自己設計資料結構來儲存結果了。

這個沒有問題,你可以試試1 2 3

#include "stdio.h"

int f(int i)

main()

3樓:

因為都沒有給賦初值,當然要出錯

第乙個程式的p,q,r,先初始化=1,第二個程式的a,b,c也要初始化

printf("%d"(p+q+r)); 格式中間少了個逗號第乙個程式你修改過後的絕對是正確的,你自己好好執行下.輸入1 2 3,出來的結果是9.第二個程式是錯誤的.

邏輯就不對.負數是因為第三個迴圈.c=c*d;因為c=3,所以迴圈後c會不斷擴大,資料溢位.

最後出現乙個負數.按照第乙個程式的邏輯思路就可以了.不過要提醒你的是,介乘很大,很容易溢位,測試範圍的數一般很侷限的,很小,在個位數.

4樓:匿名使用者

一看就知道不對了,用遞迴試試,或用函式呼叫int a,b,c,d;

scanf("%d%d%d",&a,&b,&c);

d=f(a)+f(b)+f(c);

f(i)

思路差不多是這樣的吧

5樓:永恆的_天使

呵呵 回答晚了,同意樓上的

c語言程式設計題,從鍵盤輸入乙個數,用函式呼叫求它的階乘(如5!=120)

6樓:

階乘的結果,數值很大,要用double計算和存放。

列印整數部分就可以了。

# include

double jc(int n)

void main()

c語言程式設計題。計算1!+2!+3!+…+n!的值,n從鍵盤輸入(用函式完成階乘計算)

7樓:

#include"iostream.h"

#include"windows.h"

void main()

cout<<"結果:"<整數!\n";

system("pause");

}int a(int n)

8樓:匿名使用者

#include

using namespace std;

unsigned long long n,a[100000001],b[100000001],lb,la=1,x,x1;

int main()

while(x>0)

lb=la;

x1=0;

int k;

for(k=1;k<=lb;k++)

b[k]=x1;

}for(int i=la;i>=1;i--) cout<

return 0;}

9樓:匿名使用者

#include

int fun(int a)

return sum;

}main()

printf("結果是:%d\n",sum);}

10樓:匿名使用者

#include

double fac(int n)

int main()

11樓:匿名使用者

void main()

printf("%d!=%ld\n",n,sum);

}就是這樣,希望對你有幫住~

12樓:匿名使用者

遞迴。double main(int i)

13樓:匿名使用者

#include

int main(void)

printf("\nthe result is %d\n",sum);}}

c語言程式設計求若干個連續整數的階乘之和:1!+2!+3!+....+n!,要求求每個數的階乘用函式來實現

14樓:

#include"stdio.h"

int mul(int n);

void main()

int mul(int n)

15樓:匿名使用者

&num 應該 num

printf 不用取位址,scanf才需要把變數位址告訴函式,其中的道理如果學了組合語言就很好理解。c語言來理解,就是scanf需要修改那個位址的值,所以要位址(指標),printf不修改值,用值傳遞就可以了。

另外,階乘很容易溢位的,不考慮很複雜情況,最起碼用long long型別整數

c語言程式設計:有3個整數a,b,c,由鍵盤輸入,請輸出其中最大的數

16樓:匿名使用者

【例】輸入三個整數,輸出最大數和最小數。

main()

else

if(maxc)

min=c;

}本程式中,首先比較輸入的a,b的大小,並把大數裝入max,小數裝入min中,然後再與c比較,若max小於c,則把c賦予max;如果c小於min,則把c賦予min。因此max內總是最大數,而min內總是最小數。最後輸出max和min的值即可。

17樓:

#include

void main()

18樓:藍天白雲_呵呵

#include

void main()

int max(int x,inty,intz);if(y>x&&y>z);

if(z>x&&z>y);

return m;}

19樓:匿名使用者

#include

main()

c語言中如何程式設計計算階乘

20樓:浪哥

常見bai的有兩種:du

遞迴版本:zhi

int fac(int n)

還有一dao種是迴圈版:

int ans=1;

for(int i=1;i<=n;i++) ans*=i;

測試方法:

#include

int fac(int n)

int main()

return 0;

}有個值得注意內的地方:階乘時,

容數增大的很快,在n達到13時就會超過int的範圍,此時可以用long long或是 __int64來儲存更高精度的值,如果還想儲存更高位的,需要用陣列來模擬大數相乘。

21樓:eda亂碼

遞迴函式

fun(int n)

只要主函式呼叫這個函式,即可計算階乘。

22樓:黃昏記憶

#include

#include

double fact(int n);

int main()

double fact(int n)

23樓:匿名使用者

main()

24樓:匿名使用者

int a=1;

for(int i=1;i

25樓:

int func(x)

C語言程式設計從鍵盤輸入班(全班最多不超過30人)學生某門課的成績,當輸入成績為負值時,輸入結束

先不說統計啥的,fun1 裡你的scanf d x i 沒有放到for迴圈裡。我忘了c裡面陣列申請時下標從1還是從0開始了,那麼只有x 3 有值,或者根本沒有x 3 記憶體溢位。你的 太凌亂了!看完就覺得沒幾句 是正確的,返回值不注意,變數的初始化也不注意,感覺跟沒學過c的一樣,要讓別人肯幫你修改,...

從鍵盤輸入整數判斷它是否為素數,從鍵盤輸入乙個整數,判斷它是否為素數

演算法如下 已執行通過 include iostream.h include math.h define n 1000 bool fun int n void main 補充一下,求素數的方法還是有很多的,比如 1 遍歷2以上n的平方根以下的每乙個整數,是不是能整除n 這是最基本的方法 2 遍歷2以...

C語言問題,從鍵盤輸入n個英語單詞。輸入格式為n,w1,w2,w3 wn,其中n表示隨後輸入的英語

我提供個思路,你可以用遞迴的方式解這個問題。如果m 10,w1 1,則如果w1為滿足的若干件其中之一的話,則需要其他加起來為m w1,以此類推,直到w1到wn中有滿足的,且沒有重複的為止 include include include typedef struct link link void in...

c語言編寫程式提示從鍵盤輸入小於1000的正

蕪視壹苆灬 include stdio.h void aa int k 個位數字或者百位數字 void aaa int i,int j 特殊情況 void x int l 十位數字 void fun int a,int b,int c if b 1 aaa b,c if b 1 b 9 if b 0...

c 怎麼從鍵盤輸入隨機個字元用陣列

字元陣列的輸入輸出可以有兩種方法 1 逐個字元輸入輸出,如例5.9 2 將整個字串一次輸入或輸出 例如有以下程式段 char str 20 cin str 用字元陣列名輸入字串 cout 在執行時輸入乙個字串,如 china 在記憶體中,陣列str的狀態如圖5.9所示,在5個字元的後面自動加了乙個結...