Kokonaislukuja on N, joten edellisten lukujen järjestys siirretään M paikkaa taaksepäin, ja lopulta M luku muuttuu M luvuksi edessä, kirjoitetaan funktio yllä mainittujen funktioiden saavuttamiseksi, syötetään N kokonaislukua N kokonaislukua ja pääfunktiossa saadaan säädetty N lukua.
#include "stdafx.h" #include "stdio.h" int main(int argc, char* argv[]) {void move(int array[20],int n, int m); int-luku[20],n,m,i; printf ("kuinka monta numeroa?"); scanf("%d",&n); printf("syötä %d luvut:\n",n); for(i=0; i<n; i++) scanf("%d",&number[i]); printf ("kuinka monta paikkaa haluat muuttaa?"); scanf("%d",&m); move(numero,n,m); printf("nyt ne ovat:\n"); for(i=0; i<n; i++) printf("%d ",number[i]); printf("\n"); palautus 0;
} void move(int array[20],int n,int m) // funktio, joka liikkuu taaksepäin kerran silmukassa {int *p,array_end; array_end=*(taulukko+n-1); for(p=taulukko+n-1; p>array; p--) *p=*(p-1); *taulukko=array_end; m--; if(m>0) move(array,n,m); Rekursiivinen kutsu, kun silmukoiden määrä M vähenee nollaan, kutsu pysäytetään
}
|