#include <stdio.h>
int main()
{
int i,j;
int sum=1;
int b=0;
for(i=2;i<=12;i=i+2)
{
for(j=1;j<=i;j++)
sum=sum*j;
}
b=b+sum;
printf("%d",b);
return 0;
}
在上面的代码中,第一个错误出现在第10行,具体来说是没有把循环变量j的值恢复到1。因此,第一次循环的时候,sum的值将会等于1乘2乘3乘4乘5乘6乘7乘8乘9乘10乘11乘12,而不是正确的1乘2乘3乘4。
另一个错误出现在第15行,具体来说是把b的值直接加上了sum的值,而没有把它们赋给一个新的变量。因此,b的值将会变成0加上sum的值,而不是正确的0加上1乘2乘3乘4的值。
为了解决这个问题,可以按照下面的方式修改代码:
#include <stdio.h>
int main()
{
int i,j;
int sum=1;
int b=0;
for(i=2;i<=12;i=i+2)
{
for(j=1;j<=i;j++)
sum=sum*j;
b=b+sum;
sum=1; //把sum的值恢复到1
}
printf("%d",b);
return 0;
}
希望以上修改能够解决您的问题。如果您还有疑问,欢迎提出。