ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

54、数组的增删改查 及倒置

2022-01-25 10:33:46  阅读:109  来源: 互联网

标签:index end int 54 改查 len length 增删 return


#include<stdio.h>
#define LEN 10
int length(int *a){ //参数还可以写成 int a[LEN] 或者 int a[] 都代表a是一个int *类型的变量
int j=0;
while(j<LEN){
if(a[j]==0){
break;
}
else j++;

}
return j;
}
void show(int a[]){
int len = length(a);
for(int i=0;i<len;i++){
printf("%5d",a[i]);

}
}

bool del(int *a,int index){
int len=length(a);
if(len==0||index>len-1||index<0){
return false;
}
else {
for(int i=index+1;i<len;i++){
a[i-1]=a[i];
}
a[len-1]=0;
return true;
}
}
bool insert(int *a,int index,int value){
int len = length(a);
if(len==LEN||index>len-1||index<0)
return false;
else{
for(int i=len-1;i>=index;--i)
a[i+1]=a[i];
a[index]=value;
return true;
}
}
void invert(int *a){
int len = length(a);
int from = 0;
int end = len-1;
while(from<end)
{
int d = a[from];
a[from] = a[end];
a[end] = d;
from++;
end--;
}
}

int find1(int *a,int value){
int len = length(a);
for(int i=0;i<len;++i)
{
if(a[i]==value)
return i;
}
return -1;
}

int find2(int *a,int value)
{
int len=length(a);
int from=0;
int end = len-1;

while(from<=end)
{

if(value==a[(from+end)/2])
return (from+end)/2;
else if(value>a[(from+end)/2])
from=(from+end)/2+1;
else
end=(from+end)/2-1;
}
return -1;
}
int main(){
int a[LEN]={3,6,9,12,15};
// insert(a,2,8);

// if(del(a,5))
// show(a);
// else
// printf("删除失败\n");
// printf("有效元素个数:%d\n",length(a));
// show(a);
// invert(a);
// show(a);
printf("%d\n",find2(a,15));


}

标签:index,end,int,54,改查,len,length,增删,return
来源: https://www.cnblogs.com/cbxg135/p/15841948.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有