我试图更好地理解for循环。我有以下变量:
x = 1
y = 10
我想增加x并使用for循环将其加倍十次以获得以下输出:1,2,4,8,16等。
这就是我所拥有的,但它并没有完全解决这个问题:
int x = 1;
int y = 10;
for (int i = 0; i < y; i++)
{
x *= 2;
}
printf("%d\n", x);
我需要另一个变量吗?
答案 0 :(得分:4)
对我来说很好看。如果您希望在每次迭代时打印,则需要将printf
移动到循环中。
此外,您的代码只能在C99或GCC的默认扩展名中使用,因为您在int i
循环中有for
。
答案 1 :(得分:1)
我想增加x并使用for循环将其加倍十次以获得以下输出:1,2,4,8,16等。
你的例子与你的要求相矛盾。递增一个整数并将其加倍会产生1,4,6,8,10,12,14 ...... n。它们只是两个的倍数。你的例子产生了两个的权力,即
int x;
for( x = 0; x < 10; ++x )
{
printf("%d\n", pow(2, x) );
}
答案 2 :(得分:1)
如果您希望它显示运行计数,那么您应该将printf
放在for循环中,这样每次迭代都会执行它。
我需要另一个变量吗?
没有。您实际上可以删除变量 - y
。它是不必要的,您可以直接在循环的条件中指定10:
int i = 0;
int x = 1;
for (i = 0; i < 10; i++)
{
x *= 2;
printf("%d\n", x);
}
答案 3 :(得分:0)
for (int i = 0; i < y; i++)
{
x *= 2;
printf("%d\n", x);
}
答案 4 :(得分:0)
认为你想要在{和}之间的for循环中使用printf语句。
答案 5 :(得分:0)
int x = 1;
int y = 10;
int i = 0;
int main() {
for(i = 0; i < y; i++) {
x *= 2;
printf("%d\n", x);
}
return 0;
}
输出:
2
4
8
16
32
64
128
256
512
1024
答案 6 :(得分:0)
你的答案与你的源代码相矛盾,如果你想打印1,2,4,8,16,......你会得到第一个元素2,因为你将每次迭代乘以它的值2倍,你做不需要使用额外的变量,而且你可以删除y,直接放10并在{} .hope中使用printf语句它会有帮助
答案 7 :(得分:0)
如果你知道你只需要增加它10次。那为什么要使用额外的变量呢?用这个....
for(x = 1; x<=1024; x*=2)
{
printf("%d ",x);
}