文章

79

粉丝

221

获赞

45

访问

166.1k

头像
删除最大最小数
P1022 贵州大学机试题
发布于2023年3月21日 19:44
阅读数 2.7k

#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下标即可。

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发