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的阶乘,哪里出错了,求大佬指点
把F函数中的fact=fact*1;改为fact=fact*i;。
把主函数中的result=F(n)/F(m)*F(n-m);改为result=F(n)/F(m)/F(n-m);。
建议在主函数中的scanf("%d%d",&m,&n);后加一句if(m<0 || n<0 || m<n) return 0;,以便输入错误时退出。
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);
}
//---------------------------------------------------------------------------