asu*_*day 2 c for-loop nested-loops
我正在尝试使用以下程序计算"2 ^ 0 + 2 ^ 1 + 2 ^ 2 + ... + 2 ^ 14"(我是一个新手,只能通过将自身相乘一定次数来计算指数).结果应该是32767,但我跑了它并获得了270566475,我想了很久但无法弄清楚为什么......
#include <stdio.h>
int main(void)
{
int i, e, exponent, sum;
e = 1;
exponent = 1;
sum = 1;
for (i = 1; i <=14; i++)
{
for (e = 1; e <= i; e++)
{
exponent *= 2;
}
sum += exponent;
}
printf("%d\n", sum);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
那么这有什么问题?谢谢!!!
你不需要内循环.只需执行exponent *= 2一次,直接在外部循环内部执行.顺便说一句,我认为你必须这样做之后的sum += ....
此外,你可以从sum = 0和开始i = 0,这更接近你描述的数学.