В цикле while
вы не увеличивали i
, но в цикле for
вы используете
for (i=1;i<=128;i++)
{
printf("%d",i);
i*=2;
}
Вы увеличиваете i
на единицу и умножаете i
на 2 в каждой итерации вашего цикла.Вот почему вы получаете странный результат.
Попробуйте следующий код для того же результата, что и при генерации цикла.
for (i = 1; i <= 128; i *= 2)
{
printf("%d",i);
}