求指点,指针学习
题目:有n个整数,使前面各数顺序向后移动m个位置,最后m个数变成最前面的m个数。#include<stdio.h>
#include<stdlib.h>
int main()
{
void fun(int *p1,int n,int m);
int a[20];
int n,m,i;
printf("Enter n:");
fflush(stdout);
scanf("%d",&n);
printf("Enter %d numbers\n",n);
fflush(stdout);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("Enter m:");
fflush(stdout);
scanf("%d",&m);
fun(a,n,m);
printf("move numbers:");
fflush(stdout);
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
void fun(int *p1,int n,int m)
{
int i;
int *p=0;
for(i=0;i<n;i++)
{
if(i<m)
*(p+i)=*(p1+n-m+i);
else
*(p+i)=*(p1+i-m);
}
for(i=0;i<n;i++)
{
*(p1+i)=*(p+i);
}
}