C语言数组的增删改查

总代码

//该代码用c语言初步实现了数组的增删改查。 
#include<stdio.h>
//函数声明 
int* add_elem(int arry[],int site,int n,int length);
int* delete_elem(int arry[],int site,int length);
int* modify_elem(int arry[],int site,int n,int length);
void find_elem(int arry[],int site,int length);
//主函数 
int main(){
    int arry[6]={1,1,1,1,1,1};
    int *arry_1;//为接收处理完的数组,若不返回可以不用指针。 
    int length=sizeof(arry)/sizeof(int);//求数组元素数 
    int i,site,n,num;
    int flag = 1;
    while(flag){
    	printf("请输入你想进行的操作\n1代表往数组中增添元素\n2代表删除数组中元素\n3代表修改数组元素\n4代表查找数组元素\n5结束操作\n"); 
    	scanf("%d",&num); 
	    switch(num){
	    	case 1:
	    		printf("输入想要增加元素的位置和数字以空格分割\n");
			    scanf("%d %d",&site,&n);
			    arry_1 = add_elem(arry,site,n,length);
			    break;
			case 2:
				printf("请输入想要删除数字的位置\n"); 
				scanf("%d",&site);
		    	arry_1 = delete_elem(arry,site,length);
		    	break;
		    case 3:
		    	printf("请输入想要修改的位置和数字以空格分割\n"); 
		    	scanf("%d %d",&site,&n);
		    	arry_1 = modify_elem(arry,site,n,length);
		    	break;
		    case 4:
		    	printf("请输入你想查找元素的位置\n");
		    	scanf("%d",&site);
		    	find_elem(arry,site,length);
		    	break;
		    case 5:
		    	flag = 0;
		    	break;
			default:
		    	printf("请规范操作");
		}
	}
    
    for (i=0;i<length;i++){
        printf("%d ",*(arry_1+i));
    }
    return 0;
}
//插入模块(按位置插入) 
int* add_elem(int arry[],int site,int n,int length){
	if(site<1||site>length){
		printf("ERROR\n");
	}
	else{
		int i,j;
		for (j=length-1;j>=site-1;j--){
	        arry[j+1]=arry[j];
	    }
	    arry[site-1] = n;
	    return arry;
	}
}
//删除模块(按位置删除) 
int* delete_elem(int arry[],int site,int length){
	if(site<1||site>length){
		printf("ERROR\n");
	}
	else{
		int i,j;
		for (j=site-1;j<length-1;j++){
	        arry[j]=arry[j+1];
	    }
	    arry[length-1] = 0;
	    return arry;
	}
}
//修改模块(按位置修改) 
int* modify_elem(int arry[],int site,int n,int length){
	if(site<1||site>length){
		printf("ERROR\n");
	}
	else{
		arry[site-1] = n;
		return arry;
	}
}
//查找模块(按位置查找) 
void find_elem(int arry[],int site,int length){
	if(site<1||site>length){
		printf("ERROR\n");
	}
	else{
		int n;
		n = arry[site-1];
		printf("%d\n",n);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值