作业帮 > 综合 > 作业

N个正整数,使前面各数顺序后移M个位置,最后M个数移到前面,求改程序

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/27 12:48:32
N个正整数,使前面各数顺序后移M个位置,最后M个数移到前面,求改程序
#include
#include
int main()
{
int n,*p,*a,*q,m,i;
scanf("%d",&n);
scanf("%d",&m);
p=(int *)malloc(n*sizeof(int));
a=p;
for(i=0;i
N个正整数,使前面各数顺序后移M个位置,最后M个数移到前面,求改程序
你先开了一个n的空间,那么只能用这n个大小的空间,这样的话就要通过空间内数值内容的交换来达成.
你不想用内容交换来达成的话,就要用链表的数据结构,但是这样的话,就不能用p+m这种简单的方法来得到后面第m个位置
不然的话你可以开一个n*2的空间,放1-n的数后面再放1-n的数,这样的话你就可以像你这样做了.
#include
#include
int main()
{
int n,*p,*a,*q,m,i;
scanf("%d",&n);
scanf("%d",&m);
p=(int *)malloc(2*n*sizeof(int));
a=p;
for(i=0;i