Existuje N celých čísel, takže pořadí předchozích čísel se posune zpět o M pozic, a nakonec se M čísel stane M čísly před nimi, zapíše funkci pro dosažení výše uvedených funkcí, zadá N celých čísel a v hlavní funkciji vypíše upravené N čísel.
#include "stdafx.h" #include "stdio.h" int main(int argc, char* argv[]) {void move(int array[20],int n,int m); Int číslo[20],n,m,i; printf ("kolik čísel?"); scanf("%d",&n); printf("vstup %d čísel:\n",n); for(i=0; i<n; i++) scanf("%d",&číslo[i]); PrintF("Kolik míst chcete přesunout?"); scanf("%d",&m); move(number,n,m); printf ("nyní jsou:\n"); for(i=0; i<n; i++) printf("%d ",číslo[i]); printf ("\n"); return 0;
} void move(int array[20],int n,int m) // funkce, která se jednou v cyklu posune zpět {int *p,array_end; array_end=*(pole+n-1); for(p=array+n-1; p>array; p--) *p=*(p-1); *array=array_end; m--; if(m>0) move(array,n,m); Rekurzivní volání, když se počet smyček M zredukuje na 0, volání je zastaveno
}
|