Ada bilangan bulat N, sehingga urutan bilangan sebelumnya dipindahkan ke belakang posisi M, dan akhirnya angka M menjadi angka M di depan, tulis fungsi untuk mencapai fungsi di atas, masukkan bilangan bulat N bilangan bulat dan keluaran bilangan N yang disesuaikan pada fungsi utama.
#include "stdafx.h" #include "stdio.h" int main(int argc, char* argv[]) {void move(int array[20],int n,int m); nomor int[20],n,m,i; printf("berapa banyak angka?"); scanf("%d",&n); printf("masukkan %d angka:\n",n); untuk(i=0; i<n; i++) scanf("%d",&number[i]); printf("berapa banyak tempat yang ingin Anda pindahkan?"); scanf("%d",&m); pindahkan (nomor, n, m); printf("sekarang ,mereka adalah:\n"); untuk(i=0; i<n; i++) printf("%d ",number[i]); printf("\n"); mengembalikan 0;
} void move(int array[20],int n,int m) // fungsi yang bergerak kembali sekali dalam satu loop {int *p,array_end; array_end=*(array+n-1); untuk(p=array+n-1; p>array; p--) *p=*(p-1); *array=array_end; m--; if(m>0) move(array,n,m); Panggilan rekursif, ketika jumlah loop M dikurangi menjadi 0, panggilan dihentikan
}
|