c语言问题,求1-35的阶乘!!!!

#include<stdio.h>
void main (void)
{
int a=1;
int i;
for (i=1;i<=35;a=a*i)
{printf ("%d!=%d\n",i,a);
i++;
}
}

哪里错了 啊???

1、首先在电脑中打开C语言软件,定义一个函数,并传入一个参数。

2、然后定义一个result变量,如下图所示。

3、接着当传入的参数为1的时候,值为1,如下图所示。

4、而传入的参数不是1的时候,使用递归函数来计算阶乘,jiecheng(n-1)*n,如下图所示。

5、返回结果result,在主函数里面调用这个阶乘函数。

6、最后编译运行这个函数,如下图所示就完成了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-23
数有点大,会溢出出错,
可以改成double型数据试试

#include<stdio.h>
void main (void)
{
double a=1;
int i;
for (i=1;i<=35;a=a*(double)i)
{printf ("%d!=%lf\n",i,a);
i++;
}
}
第2个回答  2013-07-23
首先不管你的程序对不对int型的数据存储35的阶乘基本上来说肯定溢出所以你的数据类型定义的就有问题
第3个回答  推荐于2018-04-05
计算结果超出int所能表示的范围了!
C语言的int类型与开发环境平台有关,可能是16位(2^16),也可能是32位(2^32),估计现在大多数开发环境都是用32位的,可达到4294967296,相当于long int。但你的程序计算结果却大于这个数,因此无法显示。

解决办法:
可以把计算结果不用整形表示,用double长浮点数,计算结果中不保留小数点后面的位数就行了,改成如下,已经试验通过。
#include<stdio.h>
void main (void)
{
double a=1;
int i;
for (i=1;i<=35;a=a*i)
{printf ("%d!=%.lf\n",i,a);
i++;
}
}本回答被提问者和网友采纳
第4个回答  2013-07-23
会溢出、double a;就好了

c语言问题,求1-35的阶乘!!!
1、首先在电脑中打开C语言软件,定义一个函数,并传入一个参数。2、然后定义一个result变量,如下图所示。3、接着当传入的参数为1的时候,值为1,如下图所示。4、而传入的参数不是1的时候,使用递归函数来计算阶乘,jiecheng(n-1)*n,如下图所示。5、返回结果result,在主函数里面调用这个阶乘函数...

用c语言求1-30之间的所有整数的阶乘
include<stdio.h> main(){ int i;double n;\/\/因为30!已经超出了int的表示范围,所以用double n=1.0;for(i=1;i<=30;i++){ n*=i;printf("%d!=%.0f\\n",i,n);\/\/输出的时候,n保留0位小数 } }

c语言如何计算阶乘?
int main() { int num;unsigned long long factorial = 1;\/\/ 输入要计算阶乘的数 printf("请输入一个整数: ");scanf("%d", &num);\/\/ 检查输入是否为负数 if (num < 0) { printf("抱歉,阶乘不适用于负数。\\n");} else { \/\/ 计算阶乘 for (int i = 1; i <= num; ++i) {...

c语言求1到100阶乘代码
void main(){ double j=1;for(int i=1;i<=50;i++)j*=i;printf("1到100的阶乘是%.0f\\n",j);} 下面用函数的递归调用做:include<stdio.h> double fact(int n)\/*求阶乘的函数*\/ { double j;if(n>1)j=n*fact(n-1);\/*递归调用,当n>1时,一直会调用下去,只不过每次参数被减1...

C语言中,如何计算阶乘?
首先是求阶乘:int factorial(int index){ int sum = 0;if (index == 1){ sum = 1;}else{ sum = index * factorial(index-1);} return sum;} 之后再求和:int add_recursion(int maxnum){ int sum = 0;if (maxnum == 1){ sum = factorial(maxnum);}else{ sum = factorial(...

C语言编写一个程序求一个数的阶乘。
1、首先在打开的C语言软件窗口中,在Main函数的上方,写上阶乘函数的框架,如下图所示。2、然后定义一个变量【result】,如下图所示。3、然后输入if判断语句,就可以写下程序的关键语句,如下图所示。4、接下来就可以调用输出,如下图所示。5、最后点击运行,如下图所示,就可以运行测试。

C语言计算阶乘
首先输入头文件和主函数 #includestdio.h #includestdlib.h int main() { } 声明变量 int i = 0;\/* i为计数器 *\/ int n; int factorial = 1;\/* 保存阶乘的结果 *\/ puts("输入要求的阶乘 n:"); scanf("%d

C语言计算阶乘问题
你的printf("%d!=%d\\n",&n,&s)函数,在打印n和s时,不要带上&符号

1到100的阶乘 C语言程序
include <stdio.h> void main(){ int i,j;long fun ;for(i = 1;i<=100;i++){ fun =1;for(j=1;j<=i;j++)fun*=j;printf("%d! = %ld\\n",i,fun);} } 满意请采纳

c语言求阶乘
include<stdio.h> int main(){int n,i,f=1;scanf("%d",&n);for(i=2;i<=n;i++)f*=i;printf("%d!=%d\\n",n,f);return 0;}

相似回答