Инкремент и печать переменной в том же цикле - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь увеличить переменную x в цикле for и печатать ее на каждой итерации.

include <stdio.h>

int x = 0;

void main()
{    
    int c;
    for (c = 1; c <= 5; c++)

        x++;
        printf("%d", x);

}

Требуемый вывод:

12345

Однако этот код печатает только:

5

Когда я не увеличиваю x, я могу печатать на каждой итерации:

# include <stdio.h>

int x = 0;

void main()
{    
    int c;
    for (c = 1; c <= 5; c++)

        //x++;
        printf("%d", x);

}

Выходы:

00000

Почему увеличивается xв цикле изменить поведение printf?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Тело вашего цикла for содержит только одну команду, то есть x++;.Обратите внимание, что компилятор заботится не об отступах, а о фигурных скобках.

Write ...

for (c = 1; c <= 5; c++) {
    x++;
    printf("%d", x);
}
0 голосов
/ 28 декабря 2018

Проблема в том, что вам не хватает здесь области видимости .

Операторы

for (c = 1; c <= 5; c++)

    x++;
    printf("%d", x);

совпадают с

for (c = 1; c <= 5; c++)
{
    x++;
}
printf("%d", x);

Итак, ваш оператор печати не является частью цикла.

С другой стороны, когда вы комментируете оператор x++;, оператор printf() считается телом цикла.

Вам нужно усилить блок, используя фигурные скобки, например

for (c = 1; c <= 5; c++)
{
    x++;
    printf("%d", x);
}
...