C中的sum - For循环错误



我试图用c在for循环中求和值。变量x = 1的初始值,我想将其加倍一组次数并添加结果。我已经执行了for循环,但是总和总是与初始值相差。

例如,如果是x = 1,模式应该是:

1, 2, 4, 8, 16

total应为31。不幸的是,total是一个。

int x = 1;
int y = 10;
int total;
for(int i = 1; i < y; i++)
{   
   x *= 2;
   total += x;
}
printf("Total: %dn", total);

这个差1。如何让循环从1而不是2开始?

交换for循环体中的两条语句。此外,如果您想将所有这些都移动到一个函数中,那么将total初始化为0也是一个好主意。

与错误代码的情况一样,有不止一种方法来"修复"它。当你足够清楚地告诉你想要实现什么时,没有人知道你是如何实现它的。

  • 正如@Ray total在他的回答中已经提到的,在循环前初始化total0,在循环内的加法后进行x *= 2 ,可以得到正确的结果。

  • 或者,可以说循环是OK的,因为它是在原始代码中。你只需要在循环之前将total初始化为1

哪一种方法更接近你最初想要实现的——只有你自己知道。在这两种情况下,请确保您执行了正确的迭代次数。

最新更新