删除算法需要注意:
1. 列表长度为0时不能再删除
2.每次删除后长度减一
3.输入删除的数据在原来列表中不存在,不需要改变原列表
#include <iostream>
#define MAX 100;
using namespace std;
int search(int arr[],int len,int n) {
for(int i=0; i<len; i++)
if(n==arr[i]) return i;
return -1;
}
void print(int arr[],int len) {
cout<<"打印当前列表";
for(int i=0; i<len; i++) {
cout<<arr[i]<<' ';
}
cout<<endl;
}
int main() {
int len=5;
int arr[len]= {1,2,3,4,5};
print(arr,len);
int n;
cout<<"请输入你要删除的数字";
while(cin>>n) {
int result=search(arr,len,n);
if(result==-1) cout<<n<<"不存在列表中";
else {
for(int i=result+1; i<len; i++) {
arr[i-1]=arr[i];
}
len--;
}
if(len==0){
cout<<"列表已经全部删除完毕";
return 0;
}
print(arr,len);
cout<<"请输入需要删除的数据";
}
return 0;
}