int main()
{
double total_sum = 0.0;
for (int i= 1; i<= 20; i++)
{
double single_num = 1.0;
for (int j = i; j > 0; j++)
{
single_num *= j;
}
total_sum += single_num;
}
printf("%lf\n", total_sum);
return 0;
}
如果放在第二个循环里面,那你第二个循环的每一次循环的single_num都是1.0,而且在第二个循环结束后,single_num就不存在了,第二个循环外的single_num就会报错了。
放在外面,第二个循环的每一次循环,single_num都会随着改变,也不会报错。
放到for循环内,那就起不到累乘的作用了啊,等于每次重新定义一个single_num了啊