C语言做100的阶乘

来源:百度知道 编辑:UC知道 时间:2024/05/22 14:46:23
提示usigned long型存不下!我不会。
溢出溢出!
回答者:wanglongzhen的思路还行,和我们老师提示的一样。
后面几楼的都行不通。
我们老师说这道题搞定就可以去华为上班了!!!
______________________________________________________
6楼加点注释好不,转晕了
______________________________________________________
98C语言标准中已经要求有返回值,不能有void

#define MAXLEN 300/*假设做的是300的阶乘,自己可修改*/
#define MAXSUM 300/*用来存放阶乘结果的数组最大长度*/
#include <stdio.h>
#include <math.h>
main()
{
int i,j,k,n,sum,s;
int a[MAXSUM];
for(i=0;i<MAXSUM;i++)
{
a[i]=0;
}//数组赋初值
a[0]=1;
for(i=1;i<=MAXLEN;i++)
{
for(j=MAXSUM-1;j>=0;j--)
{
if(a[j]!=0)
{
n=j+1;
break;
}
}//确定阶乘结果保存到数组中,存到数组的第几个元素
for(k=0;k<n;k++)
{
a[k]=a[k]*i;
}//对存入数组中的数进行乘法运算
for(k=0;k<n;k++)
{
sum=a[k];
if(sum/100>0)
{