实现函数功能对数组元素进行插入、删除、查询操作

#include<stdio.h>

#define MAX 100

int insert(int a[],int n,int i,int x)

{

int j;

if(n+1>MAX)

printf("无插入空间\n");      //数组只能存MAX个数

else if(i<1||i>n+1)

printf("插入位置非法\n"); //插入位置的范围为1..n+1

else

{

for(j=n-1;j>i-2;j--)

a[j+1]=a[j];    //将数组中i位置及其后面的数,依次向后移动一格

a[i-1]=x;           //在i位置插入x

n++;

}

return n;         //返回当前数组大小

}

int del(int a[],int n,int i)

{

int j;

if(i<1||i>n)

printf("删除位置非法\n");

else

{

for(j=i-1;j<n-1;j++)

a[j] = a[j+1];

n--;

}

return n;

}

int search(int a[],int n,int x)

{

int i;

for(i=0;i<n;i++)

{

if(a[i]==x)

return i+1;

}

return -1;

}

void printArray(int a[],int n)

{

int i;

for(i=0;;i++)

{

if(i==n-1)

{

printf("%d\n",a[i]);

break;

}

printf("%d ",a[i]);

}

}

void main()

{

int n,i,a[MAX];

int index,x;

printf("输入数组中的元素个数\n");

scanf("%d",&n);

for(i=0;i<n;i++)

scanf("%d",&a[i]);

printf("请输入要插入的位置和插入的数\n");

scanf("%d %d",&index,&x);

n = insert(a,n,index,x);

printArray(a,n);

printf("请输入要删除元素的位置\n");

scanf("%d",&index);

n = del(a,n,index);

printArray(a,n);

printf("请输入要查询的元素\n");

scanf("%d",&x);

i = search(a,n,x);

if(i!=-1)

printf("%d的位置:%d\n",x,i);

else

printf("未找到%d\n",x);

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-04 18:51:19

实现函数功能对数组元素进行插入、删除、查询操作的相关文章

PTA 数组元素的区间删除

6-6 数组元素的区间删除 (20 分) 给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素.删除后表中剩余元素保持顺序存储,并且相对位置不能改变. 函数接口定义: int Delete( int A[], int L, int minA, int maxA ); 其中A是整型数组,存储原始线性表的元素:L是表长,即A中元素的个数:minA和maxA分别为待删除元素的值域的下.上界.函数Delete应将A中所有值大于minA而且小于maxA的元素删除,同时保证表中剩

HDU 5349 动态插入删除查询数据-multiset

题意:动态的插入删除查询数据,允许数据重复 分析:一看就是个multiset,直接做.STL大法好. 代码: #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<vector> #include<set> using namespace std; int n; int a; multiset<int> s; i

数组元素的插入

有一个已按递减顺序排列的数组p,其中的数据位19,17,15,13,11,9,7,5,3,1.从键盘输入的数k插入到该数组中,插入后数组仍然有序. #include <stdio.h> main() { int p[11]={19,17,15,13,11,9,7,5,3,1},i,k; scanf("%d",&k); for(i=9;i>=0;i--) { if(p[i]<=k) { p[i+1]=p[i]; if(i==0) p[i]=k; } els

简单顺序表的插入,删除,指定位置,指定元素的插入删除操作

头文件 SeqList.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include<stdio.h> #include<string.h> #include<assert.h> #define MAX_SIZE 10 typedef int DataType; typedef unsigned int size_t; typedef struct SeqList { DataType array[MAX_SIZE]; s

从控制台输入输出,来进行数据库的插入和查询操作的小程序

首先来看一下数据库结构 然后将数据库中插入如下数据 eclipse中包和Java文件 examStudent包的代码 ExamStudent.java package examStudent; public class ExamStudent { /** * 流水号 */ private int flowId; /** * 四级.六级 */ private int type; /** * 身份证号码 */ private int idCard; /** * 准考证号码 */ private in

beego orm 多对多插入和查询操作

// User 用户表 type User struct { ID int UserName string Password string Articles []*Article `orm:"rel(m2m)"` } // Article 文章表 type Article struct { ID int `orm:"pk;auto"` Artiname string `orm:"size(60)"` Atime time.Time `orm:&q

javascript 数组扩展实现 php array_count_values() 函数功能

在PHP中,array_count_values() 这个函数可以统计数组元素出现的次数,这个函数会返回一个数组,键名是原数组的值,键值是这个值出现的次数. 但是JavaScript中没有这样的函数.不过大神无数,前些日子发现这样的一个扩展: /** javascript 数组扩展实现 php array_count_values() 函数功能 */ (function(window){ if ( window.ActiveXObject ) { window.Array.prototype.i

PHP implode() 函数 把数组元素组合为字符串

http://www.w3school.com.cn/php/func_string_implode.asp PHP implode() 函数 PHP String 函数 实例 把数组元素组合为字符串: <?php $arr = array('Hello','World!','I','love','Shanghai!'); echo implode(" ",$arr); ?> 运行实例 第一个参数为可选项,所以也可以这样调用. echo implode("&quo

10. 改变数组元素值的函数

题目: 编写一个模板函数 iota , 使 a[i] += value .测试你的代码. 思路: 正常思路即可,但是我不懂这个函数名字意义是什么. 注:本题目原书翻译有错,本人已修改正确.否则题目的意义不明. 代码: 1 #include <iostream> 2 using namespace std; 3 4 template <typename T> 5 void iota (T* a, int size, const T& value) { 6 for (int i