/* Note:Your choice is C IDE */
#include "stdio.h"
#include "stdlib.h"
void delet1(int *p,int b);
void add1(int *p,int b,int n);
void find(int *p,int b,int n);
void change(int *p,int b,int n);
void delet2(int *p,int b,int n);
int main()
{
int i,b,n=6,*p,c,j;
p=(int *)malloc(6*sizeof(int));
printf("请输入6个数\n");
for(i=0;i<6;i++){
scanf("%d",p+i);}
printf("遍历");
for(i=0;i<n;i++){
printf("%d ",p[i]);}
printf("请输入删除的数\n");//删除一个数
scanf("%d",&b);
delet1(p,b);
printf("请输入插入的数\n");//在某个位置插入元素
scanf("%d",&b);
add1(p,b,n);
printf("请输入查找的数\n");//查找数组中某个元素的下标
scanf("%d",&b);
find(p,b,n);
printf("请输入替换的数\n");//在某个位置替换元素
scanf("%d",&b);
change(p,b,n);
printf("请输入删除数的位置\n");//删除数组中某个位置的元素
scanf("%d",&b);
delet2(p,b,n);
}
void delet1(int *p,int b){
int n=6,j,i;
for(i=0;i<n;i++){
if(p[i]==b){
for(j=i;j<=n-2;j++)
{
p[j]=p[j+1];//覆盖
} }}
for(i=0;i<n-1;i++){
printf("%d ",p[i]);}
}
void add1(int *p,int b,int n){
int c,i,j;
printf("在0—5范围中插入一个数的位置\n");
scanf("%d",&c);
for(i=0;i<=n;i++){
if(i==c){printf("找到了");
for(j=n;j>=c;j--)
p[j+1]=p[j];}else
{continue;}
}
p[c]=b;
for(i=0;i<6;i++)
printf("%d ",p[i]);
}
void find(int *p,int b,int n){
int i;
for(i=0;i<n;i++){
if(p[i]==b){
printf("%d ",i);
} }
}
void change(int *p,int b,int n){
int c,i,m;
printf("在1—5范围中替换一个数的位置\n");
scanf("%d",&c);
m=p[c];
for(i=0;i<n+1;i++){
if(i==c){
printf("找到了\n");
p[i]=p[i+1];
}
p[c]=b;
}
for(i=0;i<n;i++){
printf("%d ",p[i]);}
}
void delet2(int *p,int b,int n){
int i,j;
for(i=0;i<n;i++){
if(i==b){
for(j=i;j<=n-2;j++){
p[j]=p[j+1];//覆盖
} }}
for(i=0;i<n-1;i++){
printf("%d ",p[i]);}
}
动态数组增删改查
最新推荐文章于 2022-05-02 14:43:41 发布