Jest N liczb całkowitych, więc kolejność poprzednich liczb jest cofnięta o M pozycji, a ostatecznie M liczb staje się M liczbami na początku, zapisuje się funkcję do uzyskania powyższych funkcji, wpisuje się N liczb całkowitych i w głównej funkcji wychodzi skorygowane N liczb.
#include "stdafx.h" #include "stdio.h" int main(int argc, char* argv[]) {void move(int array[20],int n,int m); liczba int[20],n,m,i; printf ("ile liczb?"); scanf("%d",&n); printf("input %d numbers:\n",n); for(i=0; i<n; i++) scanf("%d",&numer[i]); PrintF("Ile miejsc chcesz się przeprowadzić?"); scanf("%d",&m); move(number,n,m); printf ("teraz są:\n"); for(i=0; i<n; i++) printf("%d ",number[i]); printf ("\n"); return 0;
} void move(int array[20],int n,int m) // funkcja, która cofa się raz w pętli {int *p,array_end; array_end=*(tablica+n-1); for(p=array+n-1; p>array; p--) *p=*(p-1); *array=array_end; m--; if(m>0) move(array,n,m); Wywołanie rekurencyjne, gdy liczba pętli M zostanie zredukowana do 0, wywołanie zostaje przerwane
}
|