解题思路:
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; } //提交后正确
0.0分
0 人评分
简单的a+b (C++语言代码)浏览:895 |
最小公倍数 (C语言代码)浏览:894 |
P1001 (C语言代码)浏览:836 |
简单的a+b (C语言代码)浏览:626 |
1642题解浏览:784 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:590 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:585 |
矩形面积交 (C++代码)浏览:1204 |
数字游戏 (C++代码)浏览:1240 |
1051(奇了怪了)浏览:747 |