文章
79
粉丝
221
获赞
46
访问
198.3k
#include <iostream>
using namespace std;
int main() {
int n;
cin>>n;
int *a=new int[n],max=0,min=0;
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=1;i<n;i++){
if(a[i]>a[max])
max=i;
if(a[i]<=a[min])
min=i;
}
for(int i=0;i<n;i++)
if(i!=max&&i!=min)
cout<<a[i]<<" ";
return 0;
}
思路很简单,利用max与min存储最大最小数的下标,默认都为0。特殊情况为输入数字全部相同,则需要“掐头去尾”,因此使得min更新的条件设置为
if(a[i]<=a[min])
min=i;
则min下标就会自动下沉到最后一位,即“尾”。最后输出时只要不输出max下标与min下标即可。
登录后发布评论
暂无评论,来抢沙发