Для вывода цикла в C - PullRequest
       1

Для вывода цикла в C

1 голос
/ 12 сентября 2011

Я пытаюсь лучше понять цикл 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 ]

4 голосов
/ 12 сентября 2011

Это выглядит хорошо для меня.Если вы хотите, чтобы он печатался на каждой итерации, вам нужно переместить printf в цикл.

Кроме того, ваш код будет работать только в C99 или с расширениями GCC по умолчанию, поскольку у вас есть int i внутриfor петля.

1 голос
/ 12 сентября 2011

Если вы хотите, чтобы он отображал счетчик выполнения, вы должны поместить printf в цикл for, чтобы он выполнялся с каждой итерацией.

Нужна ли для этого другая переменная?

Нет.Вы действительно можете удалить переменную - y.Это не нужно, и вы можете указать 10 непосредственно в условном цикле:

int i = 0;
int x = 1;

for (i = 0; i < 10; i++)
{
    x *= 2;
    printf("%d\n", x);
}
1 голос
/ 12 сентября 2011

Я хочу увеличить 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) );
}
0 голосов
/ 01 декабря 2016

, если вы знаете, что вам нужно увеличить его только в 10 раз.Тогда зачем использовать дополнительную переменную?используйте это ....

for(x = 1; x<=1024; x*=2)
    {
    printf("%d ",x);
    }
0 голосов
/ 10 апреля 2014

ваш ответ противоречит вашему исходному коду, если вы хотите напечатать 1,2,4,8,16, ... вы получите первый элемент 2, потому что вы умножаете каждую итерацию в 2 раза, чем ее значение, вы делаетене нужно использовать дополнительную переменную, более того, вы можете удалить y, поставить непосредственно 10 и использовать оператор printf внутри {}. надеюсь, это поможет

0 голосов
/ 12 сентября 2011
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
0 голосов
/ 12 сентября 2011

Думаю, вам нужен оператор printf внутри цикла for ... между {и}.

0 голосов
/ 12 сентября 2011
for (int i = 0; i < y; i++)
{
    x *= 2;
   printf("%d\n", x);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...