你这个程序就不改了吧,完全错的,难道你只计算到3!
正确的程序如下:
#include
void main()
{
long i,n=1,p=0;
for (i=1;i<=10;i++)
{
n*=i;
p+=n;
}
printf("1!+2!+...+10!=%ld\n", p);
}
注意看程序,下面的语句标识从1~10进行循环,{...}里面的语句执行10次,每次执行时候i的值分别为1,2,3...10:
for (i=1;i<=10;i++)
{
...
}
在每次循环中,n*=i计算后的n值为i!,也就分别是1!,2!,....,10!
然后下面一句p+=n,就是计算所有i!之和
你这个程序就不改了吧,完全错的,难道你只计算到3!
正确的程序如下:
#include
void
main()
{
long
i,n=1,p=0;
for
(i=1;i<=10;i++)
{
n*=i;
p+=n;
}
printf("1!+2!+...+10!=%ld\n",
p);
}
注意看程序,下面的语句标识从1~10进行循环,{...}里面的语句执行10次,每次执行时候i的值分别为1,2,3...10:
for
(i=1;i<=10;i++)
{
...
}
在每次循环中,n*=i计算后的n值为i!,也就分别是1!,2!,....,10!
然后下面一句p+=n,就是计算所有i!之和
# include
main()
{ long int sum=0,j,i,m=1;
for(j=1;j<=10;j++)
{
m=1;
for(i=1;i<=j;i++)
m*=i;
sum+=m;
}
printf("1!+2!+...+10!的和为sum=%d\n",sum);
}
就是这样,首先要注意,数据的范围,所以用long int,其次,要注意用到m=1
第六行的,每一次m的初值必须是1,否则会继承上一次的值。还有什麽问题,就问,肯定帮你解答!
#include "stdio.h"
void main()
{
int sum=0, i, a=1;
for(i=1; i<=10; i++)
{
a=a*i;
sum+=a;
}
printf("%d", sum);
}