C语言,求1到20阶乘,初学者,求帮助!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,求1到20阶乘,初学者,求帮助!相关的知识,希望对你有一定的参考价值。
#include<stdio.h>
void main()
int i,j,n;
double sum;
double a[20]=1;
j=0;
while(j<=19)
i=1;
while(i<=(j+1))
a[j]=a[j]*i;
i=i+1;
j=j+1;
for(n=0;n<=19;n++) sum=sum+a[n];
printf("%lf",sum);
这个程序我觉得算法没有错啊,但是为什么运行没有显示的结果呢?能帮帮我吗,好无助……
double sum=0;
double a[20]=1;
j=0;
while(j<=19)
i=1;
while(i<=(j+1))
if(j==0)
a[j]=1;
else
a[j]=a[j-1]*i;
i=i+1;
j=j+1;
for(n=0;n<=19;n++)
sum=sum+a[n];
printf("%lf",sum);
他们的答案不对,你测试下我的,你有个地方写错了本回答被提问者采纳 参考技术B #include<stdio.h>
void main()
int i,j,n;
double sum;
double a[20]=1;
j=1;
i=1;
while(j<=19)
if(i-1==0)
printf("%d的阶乘为%lf\n",i,a[j-1]);//这里是1的阶乘
if(i<(j+1))
i++;
a[j]=a[j-1]*i;
printf("%d的阶乘为%lf\n",i,a[j]);
j++;
楼主,你把括号弄清楚丫,思想是对的,但是你把while对应的括号弄清楚,你程序中的第二个while()完全没有必要,用if()就行 参考技术C #include<stdio.h>
void main()
int i,j,n;
long sum=0;//要初始化
long a[20]=1;
j=0;
while(j<=19)//大括号要对应好
i=1;
a[j]=1;
while(i<=(j+1))//大括号要对应好
a[j]=a[j]*i;
i=i+1;
j=j+1;
for(n=0;n<=19;n++) sum=sum+a[n];
printf("%d",sum);
C语言求1-20的阶乘之和
1+2!+3!+4!...+20! C语言求阶乘,我的语句如下
#include <stdio.h>
int main()
int a=1,sum=1;
int i;
do
a=a*(a+1);
sum=sum+a;
i++;
while(i<=19);
printf("%d\n",sum);
return 0;
他没有进行循环,请问这是为何?
/*
sum = 2561327494111820313
Press any key to continue
*/
#include <stdio.h>int main()
__int64 fact = 1,i,sum = 0;
for(i = 1; i < 21; ++i)
fact *= i;
sum += fact;
printf("sum = %I64d\\n",sum);
return 0;
本回答被提问者和网友采纳 参考技术B int i; 这里定义了 i 这个变量,但是没有初始化为0,所以 i 的值是不确定的,有极大的概率会大于 19 ,所以循环条件就不成立了。 参考技术C 没进循环式因为 i没初始化, i是随机值,可能大于19 参考技术D 你的i没有赋初始值追问
后来对i进行赋值后 感觉这个数据也不对
以上是关于C语言,求1到20阶乘,初学者,求帮助!的主要内容,如果未能解决你的问题,请参考以下文章