c语言:编程实现在一维数组中查找、插入和删除一个元素的操作。

编程实现在一维数组中查找、插入和删除一个元素的操作。... 编程实现在一维数组中查找、插入和删除一个元素的操作。 展开
 我来答
stwwxjs
2013-05-04 · TA获得超过593个赞
知道小有建树答主
回答量:161
采纳率:100%
帮助的人:199万
展开全部
#include<stdio.h>
#define MAX 50
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);
}

望采纳~

百度网友89e9dac
2013-05-04 · TA获得超过204个赞
知道答主
回答量:40
采纳率:0%
帮助的人:18.9万
展开全部
枚举法,用循环结构实现。我也不是特别懂,可以拿个具体的例子来试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式