y
переполняется. Вы записываете двоичную запись десятичными цифрами. в uint16_t помещаются число до 65535. Соответственно, если вы постараетесь 100000 туда записать, оно переполнится. Т.е. ваша программа не работает при x>=32.a.insert(a.begin()+k, x);
ptr = result->ai_next;
?for(ptr=result; ptr != NULL ;ptr=ptr->ai_next) {
ptr
. x&1
. Сдвинуть все биты числа на одну позицию вправо - это x >> 1
. При этом младший бит пропадает. Чтобы вставить новый бит b слева нужно сделать x | (b << k)
- тут k - номер позиции этого бита, считая с 0.i % columns
?if (!a) {
a->s = s;
cout << 5;
return a; //ошибка, не возвращает указатель на обьект класса
}
RedrawWindow(hWnd, NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);
ZeroMemory
:STARTUPINFO info={sizeof(info)};
void Reverse (int *a, int x, int y) {
int i = y+1;
int j = x-1;
while (i < j) {
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
i++;
j--;
}
}
for (int i=x+1, j = y-1; i < j; i++, j--) {
std::swap(a[i], a[j]);
}
std::reverse( &a[x+1], &a[y]);