1.給出函數int remove_all(int* a,int a,int v),要求復雜度為O(n),
它將數組a[0,n]中所有等于v的整數刪除,返回剩余元素的個(gè)數,假設返回值為m,則剩余元素保存在a[0,m]中
/**************************************************************************/
/*================================================================*/
/**************************************************************************/
#include<iostream>
using namespace std;
#define SIZE 10 //數組長(cháng)度;
int remove_all(int* a,int n,int v) //題目要求設計函數;
{
int i,m;
m=n;
for(i=0;i<m;i++){
if(a[i]==v){
a[i]=a[m-1];
m--;
i--;
}
}
return m;
}
int main()
{
int num,left;
int array[SIZE]={9,6,3,5,4,2,3,5,8,5}; //初始化數組;
cout<<"原數組為:"<<endl;
for(int i=0;i<SIZE;i++){ //輸出原數組;
cout<<array[i]<<" ";
}
cout<<endl<<"請輸入要刪除的數:";
cin>>num;
left=remove_all(array,SIZE,num); //題中函數的運用;
cout<<endl<<"刪除"<<num<<"后數組為:"<<endl;
for(i=0;i<left;i++){ //輸出刪除后數組;
cout<<array[i]<<" ";
}
cout<<endl<<endl<<"數組剩余個(gè)數為:"<<left<<endl<<endl;
return 0;
}

/***************************************************************************/
/*================================================================*/
/***************************************************************************/
聯(lián)系客服