您的位置:首页 > 编程语言 > C语言/C++

【c语言】指针实现数组元素的移位

2014-12-23 19:52 28 查看
方案一、显示上移位,实际不发生移位。。

#include<stdio.h>
#include<math.h>
void main(){
int a[10],i,*p,n;
n=4;
srand(time());
printf("数组:");
for(i=0;i<10;i++){
a[i]=rand()%100;
printf("%-4d",a[i]);
}
printf("\n");
p=&a
;
printf("现在的素组");
for(i=n;i<10;i++){
printf("%-4d",*p++);

}
for(i=0;i<n;i++){
printf("%-4d",a[i]);
}
printf("\n");
}

方案二、显示和实际都发生移位。

#include<stdio.h>
void move(int *pa,int n,int m){
int *p,*q;
int i,temp;
for(p=pa+n-m;p<pa+n;p++){
temp=*p;
for(q=p-1;q>=p-(n-m);q--)
*(q+1)=*q;
*(q+1)=temp;

}
}
main(){
int number[10],m,i;
printf("back m:");
scanf("%d",&m);
printf("input array 10 elements.\n");
for(i=0;i<10;i++)
scanf("%d",&number[i]);
move(number,10,m);
for(i=0;i<10;i++)
printf("%d ",number[i]);
printf("\n");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: