導航:首頁 > 軟體知識 > c語言這個算n階乘的程序哪裡錯

c語言這個算n階乘的程序哪裡錯

發布時間:2022-01-23 03:48:15

A. 哪位大神看一下這個小程序哪錯了啊(C語言求n的階乘)

你的循環計算部分先於n的讀入了,應該在讀入n之後再開始計算。

修改一下順序,改成
#include<stdio.h>
void main()
{int a,b,n;
printf("please put the value of n\n");
scanf("%d",&n);
for(a=1,b=1;a<=n;a++)
b*=a;
printf("n!=%d",b);
}

即可。

希望有用。

B. c語言,這個算n!階乘的程序那裡錯了呢求解 謝謝

樓主的演算法是求1!+2!+……n!的累加和

測試結果:
n=5
1!=1
2!=2
3!=6
4!=24
5!=120
1!+2!+……+n!=153

測試代碼:
#include<stdio.h>
#include "conio.h"
main()
{
long fact,sum;
int i,j,n;
printf("n=");
scanf("%d",&n);
for(j=1,sum=0;j<=n;j++)
{
for(i=1,fact=1;i<=j;i++)
fact=fact*i;
printf("%d!=%d\n",j,fact);
sum=fact+sum;
}
printf("1!+2!+¡­¡­+n!=%.0ld\n",sum);
getch();
}

你的代碼沒有問題。只是求的階乘的累加和。中間的for是求j的階乘的。外層for是用來算累加和的。

C. 關於C語言求階乘問題。這個程序為什麼錯了

#include<stdio.h>
void main()
{
int i,j;
int s=0,k=1;
for(i=2;i<=8;i=i+2)
{
/*
* 每一輪循環需要把K重新賦為1
*/
k = 1;
for(j=1;j<=i;j++)
k=k*j;
s=s+k;

}
printf("the result is %d\n",s);
}

D. 誰幫我看看這個C語言程序哪裡有錯誤題目:用遞歸調用編寫計算階乘n!的函數fact()。 求n!

return是函數返回值語句,作用是返回調用該函數地方。在函數體內應該只有一個return對應函數調用的位置,而且reutrn語句後面那()里應該是要返回的表達式而不是常量,你這有兩個return都是返回數值常量1從而導致錯誤
#include <stdio.h>
void main()
{ int m;
printf(「Enter a number: 」 );
scanf(「%d」, &m);
printf(「%d! = %d\n」, m, fact(m));
}
fact(int n)
{
int result; /*定義result*/
if(n==1||n==0) result=1;
else result = fact(n-1)*n; /* 遞歸調用 */
return (result); /*返回值為result*/
}

E. C語言求n的階乘,哪裡出錯了,求大佬指點

  1. 把F函數中的fact=fact*1;改為fact=fact*i;。

  2. 把主函數中的result=F(n)/F(m)*F(n-m);改為result=F(n)/F(m)/F(n-m);。

  3. 建議在主函數中的scanf("%d%d",&m,&n);後加一句if(m<0 || n<0 || m<n) return 0;,以便輸入錯誤時退出。

  4. int F(int m);和int F(int n);沒有必要這樣寫,寫一行int F(int);就可以了。

F. 請C語言大神來看看我錯哪了 很簡單的程序 求n的階乘

for語句修改為:
for (b=2;b<a;b++)

for循環{}裡面的語句修改為:
a*=b;

這樣就正確了。

G. c語言程序問題,幫我看下這個任意數的階乘程序那裡有錯。我運行,輸入數後沒有結果,這是為啥

你好,原因是你在while語句後面多打了一個分號,使while進入了死循環,所以才沒有結果,如圖

H. c語言 計算n的階乘 這個程序錯在哪

額,容我敲敲代碼,你的錯誤在於n的重定義吧
#include<stdio.h>
int f(int n){
int answer=1;
for(int i=0;i<n;i++)
answer=(i+1)*answer;
return answer;
}
int main(){
int n=0;
printf("input a number!\n");
scanf("%d",&n);
printf("%d!=%d",n,f(n));
getchar();
getchar();
return 0;
}

I. 用C語言編寫程序,求n的階乘n!,並將 結果存放到f。哪裡寫錯了

代碼沒什麼問題
但是 由於int的范圍
你這個 最多隻能算到12!
再多 就會出錯了
如果要算更多
那麼 可以使用double來存儲 當然 列印的是近似值

J. C語言寫n的階乘出錯

越界了!將f的數據類型改為double可以計算更大的數字(但也不是無限的)
修改如下:

//---------------------------------------------------------------------------

#include <stdio.h>
double fac(int n)
{
double f;
if(n < 0)
printf("n < 0, error!");
else
if(n == 0 || n == 1)
f = 1;
else
f = fac(n - 1) * n;
return f;
}

void main()
{
int n;
double f;
printf("input a integer:");
scanf("%d", &n);
f = fac(n);
printf("%d!=%lf\n", n, f);
}
//---------------------------------------------------------------------------

閱讀全文

與c語言這個算n階乘的程序哪裡錯相關的資料

熱點內容
產品經理專業怎麼報名 瀏覽:390
失落的方舟多少級能交易 瀏覽:75
郵政市場具有什麼樣的特徵性 瀏覽:5
外匯交易有什麼好辦法 瀏覽:782
沒有技術怎麼創業好 瀏覽:503
固收私募產品有哪些 瀏覽:658
信息溝通不包括什麼 瀏覽:46
掛面有哪些產品可以開發 瀏覽:601
花都冷雞翅類批發市場在哪裡 瀏覽:91
向法院起訴的程序是什麼 瀏覽:660
沒技術怎麼找個技術活 瀏覽:299
為什麼它顯示信息已滿 瀏覽:202
農行卡交易什麼意思 瀏覽:651
核心技術員是干什麼 瀏覽:368
在市場有什麼樣的魚缸 瀏覽:644
abb數據是什麼 瀏覽:667
pps什麼程序 瀏覽:910
浙江西部哪裡有水果批發市場 瀏覽:34
膠州花鳥市場在哪裡 瀏覽:807
鮮切花從花農到市場要哪些步驟 瀏覽:881