Problem Description
有一顺序表List,现要求删除表中的所有最大值(可能有多个),并输出删除后的新表。
Input
有多组数据,每组数据占两行。
每组第一行有一个整数,为表长n(0<n<50);
第二行为表的各元素值。
Output
每组数据的输出占一行,每两个元素之间有一空格。注意删除后为空表的情况。
Sample Input
5
12 24 4 54 15
5
12 54 4 54 15 Sample Output
12 24 4 15
12 4 15
#include<iostream>
using namespace std;
int main ()
{
int n,i,j,max,a[50];
while(cin>>n)
{
for(i=0;i<n;i++)
cin>>a[i];
max=a[0];
for(i=1;i<n;i++)
{
if(a[i]>max)
max=a[i];
}
i=0;
while(i<n)
{
if(a[i]==max)
{
for(j=i+1;j<=n-1;j++)
a[j-1]=a[j];
n--;
}
else
i++;
}
if(n==0)
cout<<endl;
else
{
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
}
}
return 0;
}