1.自己的作业:
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int i = 1;
int a = 0;
int sum = 0;
for (a = 1;a <= n;a++)
{
i = i * a;
sum += i;
}
printf(" % d\n",sum);
return 0;
}
2.错误代码举例:
#include <stdio.h>
int main()
{
int i = 0;
int ret = 1;
int n = 0;
int sum = 0;
for (n = 1; n <= 3; n++)
{
ret=1; //应在这里将ret归1。
for (i = 1; i <= n; i++)
{
ret = ret * i; //ret是在循环外创建的,在算3的阶乘时,这里的值就变成了2,所以算3的阶乘时值输出的是12。
}
sum = sum + ret;
}
printf(" % d\n", sum);
return 0;
}
//此代码较为繁琐
3.参考代码
int main()
{
int ret = 1;
int n = 0;
int sum = 0;
for (n = 1; n <= 3; n++)
{
ret = ret * n;
sum = sum + ret;
}
printf(" % d\n", sum);
return 0;
}
4.学习问题:
①变量为啥命名ret?
更多推荐
C语言计算n的阶乘求和
发布评论