用数组名作函数参数

白昼怎懂夜的黑 提交于 2020-02-08 10:13:14

用函数实现数组的增删改查

/* Note:Your choice is C IDE /
#include “stdio.h”
int research1(int a[],int x,int num);
int insert(int a[],int index,int x,int num);
int size=0;//全局变量,表示当前数组元素的个数
int arraynum;//全局变量,表示数组的大小
void main()
{
int a[10]={1,2,6,3,7,5};
int t,x,index;
arraynum=10;
size=6;
scanf("%d",&x);
/
t=research(a,x,size);
if(t1)
{
printf(“yes”);
}else
{
printf(“no”);
}*/
t=research1(a,x,size);//数组名a做函数的实参
//传递的是值(地址),即数组的首地址
if(t!=-1)
{
printf("%d index is %d",x,t);
}else
{
printf("%d is not in array",x);
}
scanf("%d%d",&index,&x);
t=insert(a,index,x,size);
if(t
0)
{
printf(“fail”);
}else
{
printf(“success”);
}

}
int research(int a[],int x,int num)//a是int类型的指针,
//等价于int research(int * a,int x,int num)
{
int i;
for(i=0;i<num;i++)
{
if(a[i]==x)//如果指针指向数组,则指针可以带下标,等价于if(*(a+i)==x)
{
return 1;
// break;一定不会执行到
}
}
return 0;
}

/*int research(int a[],int x,int num)//a是int类型的指针,
//等价于int research(int * a,int x,int num)

int *p=a;  
//int p=a; 错误,p是整型变量,a指针变量,类型不一致,不能赋值 

for(;a<p+num;a++)
{
if(a==x)//如果指针指向数组,则指针可以带下标,等价于if((a+i)==x)
{
return 1;
// break;一定不会执行到
}
}
return 0;

}*/

int research1(int a[],int x,int num)//查找数组中的x,返回x的下标
{
int i;
for(i=0;i<num;i++)
{
if(a[i]==x)
{
return i;
// break;一定不会执行到
}
}
return -1;//如果x不在数组中,返回-1
}

int insert(int a[],int index,int x,int num)//在数组a中index位置插入元素x
{
int i;
if(size==arraynum)
{
return 0;//数组已满,不能插入,用0代表数组已满的情况
}
for(i=num-1;i>=index;i–)//后移
{
a[i+1]=a[i];
}
a[index]=x;//在index位置插入x
size++;
return 1;//用1代表正常插入元素的情况

}
int insert1(int a[],int x,int num)//在数组元素的最后追加x
{
if(size==arraynum)
{
return 0;//数组已满,不能插入,用0代表数组已满的情况
}
a[num]=x;
size++;
return 1;//用1代表正常插入元素的情况
}

int delete(int a[],int x,int num)//数组中的x如果存在则删除
{

int research1(int a[],int x,int num);//对调用函数的声明
int t,i;
t=research1(a,x,num);
if(t==-1)
{
	return 0;//元素x不存在,用0表示
	
}
for(i=t;i<num-1;i++)//将t位置后的元素往前移动
{
	a[i]=a[i+1];
}
size--;
return 1;//删除成功,用1表示

}
int update(int a[],int x,int y,int num)//将数组中的x更新成y
{
int t,i;
t=research1(a,x,num);
if(t==-1)
{
return 0;//元素x不存在,用0表示
}
a[t]=y;
return 1;
}

数组按逆序排序
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!