导航:首页 > 软件知识 > 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阶乘的程序哪里错相关的资料

热点内容
代理销售设备是百分之多少的税率 浏览:931
贵州智能监控代理费多少 浏览:294
昆山有哪些钢材市场 浏览:1
怎么把档案从学校转到人才市场 浏览:825
如何练好电脑的技术 浏览:705
一百多万门面交易多少税 浏览:393
如何下载fcoin交易平台 浏览:164
贵阳快递代理点是什么意思 浏览:159
58违规信息如何删除 浏览:65
一本教材包括哪些基本信息 浏览:320
北斗信息卡怎么更改信息 浏览:114
畅易阁小号什么时候可以交易啊 浏览:246
ttsservice是什么程序 浏览:649
怎么注册货运信息部 浏览:474
兼职天天快递代理点怎么样 浏览:656
成都千盛百货打折信息有哪些 浏览:271
程序bzc是什么 浏览:841
信息技术考了三次没考过怎么办 浏览:126
填充数据为什么按ctrl 浏览:69
什么样的部门能做市场调研 浏览:427