scanf function
принимает address
такой переменной scanf("%d", &position);
, а не самой переменной.
она поместит введенное значение в этот адрес, поэтому вам нужно добавить &
к ваш scanf
.
и даже после этого. кроме случаев, когда ваша позиция 0
, этот код никогда не будет работать:
else {
for (int i = 0; i < position; i++) {
position *= 2;
}
printf("else");
}
это инфинитив l oop. Он будет выполняться до тех пор, пока position
не станет настолько большим, что int
не будет иметь достаточно места для его хранения, чтобы position
стал каким-то нелогичным числом, например, неинициализированными переменными.