я ожидал он будет производить:Какой вывод для C?
, но вместо этого она печатает
10 5 3 2 1 1 1 1 1 1 1 1 1 .. .
Почему?
#include <stdio.h>
int main(void)
{
int i;
for(i = 10; i >= 1; i /= 2)
printf("%d ", i++);
return 0;
}
2 напечатан, а затем добавляют один делает его 3, делится на 2 равен 1. В 1 равен 1, 1 печатается, а затем добавляют один делает его 2, деленное на 2 = 0. Поскольку значение 0 меньше 1, цикл должен заканчиваться.
2 разделение на 2 равно 1, а не 0. –
Попробуйте отладить программу. –