Существует N целых чисел, так что порядок предыдущих чисел смещается назад на M позиций, и в итоге M числа становятся M чисел спереди, записывают функцию для достижения вышеуказанных функций, вводят N целых чисел и выводят скорректированные N чисел в основную функцию.
#include «stdafx.h» #include «stdio.h» int main(int argc, char* argv[]) {void move(int array[20],int n,int m); int number[20],n,m,i; printf («сколько чисел?»); scanf("%d",&n); printf("ввод %d числа:\n",n); for(i=0; I<N; i++) scanf("%d",&number[i]); printf («Сколько мест вы хотите переместить?»); scanf("%d",&m); move(number,n,m); printf («теперь они есть:\n»); for(i=0; I<N; i++) printf("%d ",number[i]); printf("\n"); возврат 0;
} void move(int array[20],int n,int m) // функция, которая возвращается назад один раз в цикле {int *p,array_end; array_end=*(массив + n-1); for(p=массив+n-1; p>array; p--) *p=*(p-1); *массив=array_end; m--; if(m>0) move(array,n,m); Рекурсивный вызов, когда количество циклов M уменьшается до 0, вызов прекращается
}
|