原来的
# include <stdio.h>
int main()
{
int a,n,b,c,d,f=0,s=1;
scanf("%d",&n);
for (c=n;c>=1;c--)
{
for (a=1;a<=c;a++)
{
b=a;
s=s*b;
}
d=s;
s=1;
f=f+d;
}
printf ("%d\n",f);
return 0;
}
改进后
# include <stdio.h>
int main()
{
int i, j; // c -> i 和 a -> j
int factorialSum = 0; // f -> factorialSum 改名字使得程序更加易读
int partFactorial = 1; // s -> partFactorial
int n;
scanf ("%d", &n);
// 相同用途的变量在一行声明
// 变量声明并赋值则每行一条
// 注意空隔使用,使代码更加整洁
// 运算符两侧加空格
// 以及, 和 ; 后加空格
for (i = n; i >= 1; --i) // 前缀(--j)比后缀(j--)运算更快
{
for (j = 1; j <= i; ++j) // 同理将 j++ 改成 ++j,效率更高
{
partFactorial = partFactorial * j;
}
factorialSum = factorialSum + partFactorial;
// 调整了赋值与求和的位置,减少了中间变量 d 的使用
partFactorial = 1;
}
printf ("%d\n", factorialSum);
return 0;
}
可以多逛逛网上的博客,会学到很多东西的