work-01

发布于 2021-09-16  119 次阅读


ps:数组元素的增删操作!

/*普通数组元素的增删*/

#include<stdio.h>
int i,j=0,pos=0; 
int array[10];
int length;
int num;
int insert();
int del_array();
int print_array();
int cmd;
char menu_cmd[][20]={"插入元素","删除元素","退出"};

int Print_Menu(){
	int i;
	printf("请选择操作码:\n");
	for(i=0;i<3;i++){
		printf("%d.%s\n",i+1,menu_cmd[i]);
	} 
	scanf("%d",&cmd);
}
int main(){
	while(1){
	Print_Menu();
	switch(cmd){
     	case 1:insert();break;
	    case 2:del_array();break;
	    case 3:break;
    }
		
 }
	return 0;
}

int insert(){
	printf("请输入五个数字\n");
	for(i=0;i<5;i++){
	scanf("%d",&array[i]);
    }	
 	while(array[j]!=0){
	  j++;
	  length=j;
    }
	printf("length:%d\n",length);
	printf("请输入插入的位序:\n");
	scanf("%d",&pos);
	printf("请输入插入的数值:\n");
	scanf("%d",&num);
	//因为位序和下标差1所以这里需要pos-1 
	for(i=length-1+1;i>pos-1;i--){ 
		array[i]=array[i-1];    
	}
	array[pos-1]=num;//这里已经将所scanf得到的数字插入到位序
	//但是由于length仍保持原有长度,所以导致丢失数据
	length++;
}
int del_array(){
	int pos_del=0;
	printf("请输入删除的位序:\n");
	scanf("%d",&pos_del);
	for(i=pos_del-1;i<length;i++){
		array[i]=array[i+1];
	}
	length--;
}
int print_array(){
	for(i=0;i<length;i++)
	printf("%d ",array[i]);
}


本当の声を響かせてよ