文章

49

粉丝

140

获赞

27

访问

16.3k

头像
删除最大最小数 题解:易错点总结
P1022 贵州大学机试题
发布于2024年1月26日 13:19
阅读数 500

#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;

int main(){
	int n;
	cin >>n;
	int a[1000],b[1000];
	for(int i=0;i<1000;i++){
		a[i]=0;
		b[i]=0;
	}
	for(int i=0;i<n;i++)
		cin >> a[i];
	int max =a[0],maxi=0,min=a[0],mini=0;
	for(int i=1;i<n;i++){
		if(max<a[i]){
			max=a[i];
			maxi=i;

		}
	}
	for(int i=1;i<n;i++){
		if(min>=a[i]){
			min=a[i];
			mini=i;
		}
	}
	int ii=0;
	for(int i=0;i<n;i++){
		if(i==mini||i==maxi)
			continue;
		b[ii]=a[i];
		ii++;
		
	}
	for(int i=0;i<ii;i++){
		if(i==ii-1){
			cout << b[i];
			break;}
		cout <<  b[i] << ' ';}
	//system("pause");
	return 0;

}

如果出现输出的数相等的情况 例如输入

4

3 3 3 3

第一,应当 mini maxi两个只能是一开一闭,才能保证掐头去尾

第二,保证输出格式(空格)正确,额外创建一个数组用来存放,并最后输出

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发