#include "pch.h" #include <iostream> #include <Windows.h> using namespace std; void sdvig(int * m, int size, int sdv) { int max = *m; bool s = false; for(int i = 1; i < size; i++) { if (m[i] > max) max = m[i]; } for (int * p = m; *p <= size; p++) { *p = (p - m) + (sdv + 1); } int num = 0; while (!s) { for (int i = 0; i < size; i++) { if (m[i] <= max) num++; else s = 1; } } for (int * p = m + num; *p <= size; p++) { *p = (p - (m + num)) - 5; } for (int j = 0; j < size; j++) cout << m[j] << endl; cout << " " << num << endl; } int main(int argc, const char * argv[]) { int m[5] = { 1, 2, 3, 4, 5 }; sdvig(m, 5, 2); cin.get(); return 0; } I have such a problem: I need to move all the elements of the array to the left by 2. That is, if the initial array is {1, 2, 3, 4, 5}, then it should turn out {3, 4, 5, 1, 2}. What's my mistake? Correct, if not hard.