100的阶乘在C语言中怎么编程(要求用while和for两种方法)?

100的阶乘在C语言中怎么编程(要求用while和for两种方法)?

#include <stdio.h>
int main()
{
     int  a=100;
    double num=1.0;
//while å¾ªçŽ¯ç›¸ä¹˜å®žçŽ°é˜¶ä¹˜
while(a>0)
{     num *= a;
          a--;
}
printf("100!的结果:%le\n",num);
//for循环相乘实现阶乘
num=1;
for(a=1;a<=100;a++)
{  num *= a;}
printf("100!的结果:%le\n",num);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-01
100太大了, 保存不了那么大的数字。 给你看10的阶乘吧,道理是一样的,把10换成100就行了。

用for循环
#include<stdio.h>
int main()
{
int i,sum=1;
for(i=1;i<=10;i++)
{
sum*=i;
printf("%d的阶乘,sum=%d\n",i,sum);
}

return 0;
}

用while循环
#include<stdio.h>
int main()
{
int i=1,sum=1;
while(i<11)
{
sum*=i;
printf("%d的阶乘,sum=%d\n",i,sum);
i++;
}

return 0;
}
第2个回答  2011-09-01
100阶乘数值很大,估计很难保存!
求10!原理一样!
for
#include<stdio.h>
int main()
{
int i,sum=1;
for(i=1;i<=10;i++)
{ sum=sum*i; }
printf("sum=%d\n",sum);
}

while
#include<stdio.h>
int main()
{
int i,sum;
i=1;
sum=1;
while(i<=10)
{ sum=sun*i;
i++;}
printf("sum=%d\n",sum);
}
第3个回答  推荐于2017-09-22
int main()
{
int a=100;
double num=1;
while(a>0)
{ num *= a;
a--;
}
printf("%lf\n",num);

num=1;
for(a=1;a<=100;a++)
{ num *= a;}
printf("%e\n",num);
}本回答被提问者采纳
第4个回答  2011-09-01
#include<stdio.h>
int main(){

int n=100;
double mul=1;
while(n>1){
mul=n*mul;
n--;
}
printf("%d",mul);
}
#include<stdio.h>
int main(){

int n=100;
double mul=1;
for(int i=1;i<=n;i++){
mul=i*mul;
}
printf("%d",mul);
}