栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言 设计4个自定义函数,实现对一维数组的排序、查找、插入和删除操作,并在主调函数中设计switch结构进行具体功能函数的选择调用。

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言 设计4个自定义函数,实现对一维数组的排序、查找、插入和删除操作,并在主调函数中设计switch结构进行具体功能函数的选择调用。

**函数原型参考:

排序: void sort(int a,int n);
/对数组a进行排序,n为数组长度,在进行排序时需要用到两个数组元素的交换也可以再定义一个交换函数。
查找: int search(int a,int n,int k);
//k为待查找的值,函数有返回值,查找成功返回第一次出现的k值的下标,查找失败返回-1。
插入: int insert(int a,int n,int ij,int k);
//在数组a的i位置插入元素k,返回值为数组插入元素后的长度,数组的长度一定要能够容纳插入元素存放。
删除: int delete(int a,int n,int k);
//在数组a的中删除值为k的元素,删除成功返回值为原数组长度减1;删除失败返回数组原长度。
输出: void disp(int a,int n);
//输出数组a的元素,a的长度为n**

代码如下:
#include 
#include   //清屏
void sort (int a[],int n);                //排序
int search(int a[],int n,int k);          //查找
int insert(int a[],int n,int i,int k);    //插入
int delete(int a[],int n,int k);          //删除
void disp(int a[],int n);                 //输出


//主函数
void main()
{

    int i,n,xb,k,a[100],tt,t=0;    //定义变量及数组为基本整型
    printf("请输入个数:n");
    scanf("%d",&n);
    printf("请输入%d个数:n",n);
    for(i=0;i
        printf("请输入你想做的操作 1 排序 2 查找 3 插入 4 刪除 5 輸出 0 結束 :n");
        scanf("%d",&tt);
        switch(tt)
        {
            case 0: return 0; 
            case 1: sort(a,n); break; 
            case 2: 
                system("cls");
                printf("請輸入查找的值:"); 
                scanf("%d",&k);
                xb=search(a,n,k); 
                if(xb!=-1){
                    printf("查找成功,下標為%dn",xb);
                }
                else{
                    printf("查找失敗n");
                } 
                break;

            case 3: 
                system("cls");
                printf("請輸入插入的位置(下标),和插入的值,中间用回车隔开:n"); 
                scanf("%d",&i); 
                scanf("%d",&k);
                n=insert(a,n,i,k);
                printf("現在數組的長度是:%dn",n); 
                break;

            case 4: 
                //system("cls");
                printf("請輸入删除的值:n");
                scanf("%d",&k); 
                n=delete(a,n,k); 
                printf("現在數組的長度是:%dn",n); 
                break;
            case 5: system("cls"); disp(a,n); break;
            default: printf("輸入有誤!n"); 
        }
    }
}


void sort (int a[],int n)                //排序
{
    int i,j,t;
    for(i=0;ia[j+1])
            {
                t=a[j];    //利用中间变量实现两值互换
                a[j]=a[j+1];
                a[j+1]=t;
            }
        printf("排序已完成!n");
        return 0;
}

int search(int a[],int n,int k)          //查找
{
    int i,flag=0;
    for(i=0;i
        		flag=1; k=i; break;
        }
        if(flag ==1)
            return k;
        else
            return -1;

}
int insert(int a[],int n,int i,int k)    //插入
{

    int t=0,jishu=0,j,l;
    while(a[t++]!=-858993460) jishu++;  //統計int數組型内元素的數量
    if (i>jishu){printf("數組已滿 無法插入!") ; return -1;}
    else
    {
        for(j=jishu;j>i;j--){
            a[j]=a[j-1];
        }
        a[i]=k;
    }
    printf("已成功插入!n");
    jishu=0,t=0;  //重新开始计数
    while(a[t++]!=-858993460) jishu++; 
    return jishu;
}
int delete(int a[],int n,int k)          //删除
{
    int flag=0,i,j,t,jishu;
    for(i=0;i    
        if(a[i]==k){
            flag=1;
            for(j=i;j 
		printf("删除成功!n");
		return jishu; 
	}
    else 
	{
		printf("删除失败!n");
		return jishu;
	}
}

void disp(int a[],int n)                 //输出
{
    int i;
    printf("數組現在結果為:n");
    for(i=0;i 
运行结果: 
初始给定值:

选择 5 输出查看结果:

查找 4

插入值 3 查看

插入后查看:

删除(重新测试的):

删除后查询

输入 0

输入其他字符情况:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/994390.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号