历届试题 错误票据
代码实现:
方法一:
提示:输入不必考虑空格问题,直接输入即可
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[10000];
int n,j=0;
cin>>n;
while(cin>>a[j])
j++;
sort(a,a+j);
int m1,m2;
for(int i=0;i<j-1;i++)
{
if(a[i+1]-a[i]==2)
m1=a[i]+1;
if(a[i+1]==a[i])
m2=a[i];
}
cout<<m1<<" "<<m2;
return 0;
}
方法二:
#include<bits/stdc++.h>
using namespace std;
void s2i(string &str,int &num)
{
stringstream ss;
ss<<str;
ss>>num;
}
int main()
{
int n;
int a[10010];
cin>>n;
getchar();//去掉换行符
int num=0;//数据个数
for(int i=0;i<n;i++)
{
string s;
getline(cin,s);//得到输入的一行
//按照空格拆分成数字
istringstream iss(s);//把s封装到iss中
string tmp;
while(getline(iss,tmp,' '))//再从iss中拆分到tmp中,利用getline拆分
{
s2i(tmp,a[num++]);
}
}
sort(a,a+num);
int p,q;
for(int i=0;i<num-1;i++)
{
if(a[i]==a[i+1])
p=a[i];
else if( (a[i]+1)!=a[i+1])
q=a[i]+1;
}
cout<<q<<" "<<p;
return 0;
}