用于C中的循环输出

时间:2011-09-12 00:44:41

标签: c for-loop

我试图更好地理解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);

我需要另一个变量吗?

8 个答案:

答案 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);
    }