【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");
}
#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");
}
相关文章推荐
- 重温经典排序思想,并用C语言指针实现排序算法(转)
- C语言指针实现排序算法
- 用指针实现逆序存放数组元素
- C语言qsort算法的指针实现
- C语言冒泡法用指针实现
- 用C语言来实现的类似C++函数的重载特性-----void*指针闲谈
- 输入三个字符串,按由小到大的顺序输出(指针)(C语言的实现)
- C语言指针实现冒泡排序
- C语言通用数据类型链表的实现,(数据域为指针,可指向任意类型数据)
- C语言学习之 通过指向函数的指针 实现函数的调用
- 教你如何在C语言使用位运算实现循环移位
- C语言实现类中方法 用函数指针在结构体中加入函数
- 【回忆c语言】从指针的定义初始化到链表的插入删除排序实现code
- 双指针不带头结点的链栈的实现(C语言)
- 控件(一)——实现列表框中指定条目移位和移动指针到指定位置
- 经典排序思想,并用C语言指针实现排序算法
- FPGA中用C语言指针实现内存测试
- 【转】C语言中实现循环移位
- c语言用指针实现求最大数和最小数的程序
- C语言实现的线性表 函数形参:指针类型与变量类型的区别 (SqList *L)(SqList L)