Problem C: 指针:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面m个数
#include<stdio.h> int move(int *x,int n,int m) { int t[255]; int i; //int *p;指针循环变量p for(i=0;i<n;i++) t[i]=x[i]; for(i=0;i<m;i++) x[i]=t[n-m+i]; for(i=m;i<n;i++) x[i]=t[i-m]; /*指针变量做循环变量也可以。 for(i=0,p=x;p<x+m;p++) *p=t[n-m+i++]; for(i=0,p=x+m;p<x+n;p++) *p=t[i++]; */ } int main() { int a[20]; int n,m; int i; while(scanf("%d%d",&n,&m)!=EOF) { for(i=0;i<n;i++) scanf("%d",&a[i]); move(a,n,m); for(i=0;i<n-1;i++) printf("%d ",a[i]); printf("%d",a[n-1]); printf("\n"); } return 0; }