解题思路:
    fo了,水题还错,直接看代码把,给我留言什么数据出错了。
参考代码:

//错误代码:

#include <iostream>
#include <algorithm>
#include <vector>
#include <limits.h>
//#define hh ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
using namespace std;
vector<long> v;
long n;
int main() {
	//hh;
	while (cin >> n) {
		long  max_number = LONG_MIN;
		v.clear();
		for (long i = 0; i < n; i++) {
			long temp;
			cin >> temp;
			v.push_back(temp);
			if (max_number < temp) {
				max_number = temp;
			}
		}
		if(n==1) {
			cout<<*v.begin()<<endl;
			cout<<"-1"<<endl;
			continue;
		}
		vector<long>::iterator it;
		for (it = v.begin(); it != v.end();) {
			if (*it == max_number) {
				it = v.erase(it);
			} else {
				++it;
			}
		}
		sort(v.begin(), v.end());
		cout << max_number << endl;
		for (it = v.begin(); it != v.end(); it++) {
			cout << *it << ' ';
		}
		cout << endl;
	}
	return 0;
}

丢,写出来了,原来判重只能判断一个,分别上出啊两段代码,一个用vector一个用普通数组。

vector版本:

#include<bits/stdc++.h>
using namespace std;
vector<int> v;
int n,max_number=INT_MIN;
int main() {
	while(cin>>n) {
		max_number=INT_MIN;
		v.clear();
		for(int i=0; i<n; i++) {
			int t;
			cin>>t;
			v.push_back(t);
			if(max_number<t) {
				max_number=t;
			}
		}
		if(n==1) {
			cout<<max_number<<endl;
			cout<<-1<<endl;
			continue;
		}
		vector<int>::iterator it;
		for(it=v.begin(); it!=v.end();) {
			if(*it==max_number) {
				v.erase(it++);
				break;
			} else {
				it++;
			}
		}
		cout<<max_number<<endl;
		sort(v.begin(),v.end());
		for(it=v.begin(); it!=v.end(); it++) {
			cout<<*it<<' ';
		}
		cout<<endl;
	}
	return 0;
}

普通版本:

#include<bits/stdc++.h>
using namespace std;
const int maxn=100005;
int a[maxn];
int n,max_number=INT_MIN;
int main(){
	while(cin>>n){
		max_number=INT_MIN;
		memset(a,0,sizeof(a));
		for(int i=0;i<n;i++){
			cin>>a[i];
			if(max_number<a[i]){
				max_number=a[i];
			} 
		}
		sort(a,a+n);
		if(n==1){
			cout<<max_number<<endl;
			cout<<-1<<endl;
			continue;
		}
		cout<<max_number<<endl;
		for(int i=0;i<n-1;i++){
			cout<<a[i]<<' '; 
		}
		cout<<endl;
	}
	return 0;
}
//上下都正确 
#include<bits/stdc++.h>
using namespace std;
const int maxn=100005;
int a[maxn];
int n;
int main() {
	while(cin>>n){
		memset(a,0,sizeof(a));
		for(int i=0;i<n;i++){
			cin>>a[i];
		}
		if(n==1){
			cout<<a[0]<<endl;
			cout<<-1<<endl;
			continue;
		}
		sort(a,a+n);
		cout<<a[n-1]<<endl;
		for(int i=0;i<n-1;i++){
			cout<<a[i]<<' ';
		}
		cout<<endl;
	}
	return 0;
}
//提交后正确


点赞(1)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论