//C程序设计第四版(谭浩强)
//章节:第八章 善于利用指针
//题号:8.4
//题目:有n个整数,使前面各数顺序向后移m个位置,最后m个数变成变成最前面m个数。
//写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。
#include <stdio.h>
void fun(int *p,int n,int m)
{
int i,j,temp,b[50]={0};
int *q=b;
for(i=n-1;i>=0;i--)
*(p+i+m)=*(p+i); //先将所有元素向后移动m个位置
for(i=0,j=n;i<m;i++,j++)
{
temp=*(p+i); //再通过交换,将最后m个元素移动到最前面
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
int main()
{
int n,m,a[50]={0},i;
int *p=a;
printf("the number of integers:\n"); //输入n
scanf("%d",&n);
printf("input integers:\n");
for(i=0;i<n;i++)
scanf("%d",(p+i)); //输入n个元素
printf("the number of integers to move:\n");
scanf("%d",&m); //输入m
fun(p,n,m); //调用函数
printf("after deal:\n");
for(i=0;i<n;i++)
printf("%d ",*(p+i));
return 0;
}
8.4有n个整数,使前面各数顺序向后移m个位置,最后m个数变成变成最前面m个数。写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个数。
最新推荐文章于 2023-10-04 06:00:00 发布