水题
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
#include<cmath>
using namespace std;
const int N = 1e5+10;//错误二:看错数据个数和数据范围
int chek[N];
int main ()
{
int n;cin>>n;
memset(chek,-1,sizeof chek);
while(n){
int a;
cin>>a;chek[a]++;
if(cin.get()=='\n'){
n--;
}
}
int m =-1,nn =-1;
int sta = 0;
for(int i = 1;i<=N;++i){//错误二:看错数据个数和数据范围导致循环条件出错
if(chek[i]>=0){
sta = 1;
}
if(sta == 1&&chek[i]==-1)m = i;//错误一 :“==”敲成了“=”
if(chek[i]==1)nn =i;
if(m!=-1&&nn!=-1)
break;
}
cout<<m<<" "<<nn;
return 0;
}
这一题的一个点就是判断输入的回车和空格问题:
判断输入回车问题:
cin.get()=='\n';//是回车则返回true
C++输入问题
1.cin 遇到空格、回车会结束获取输入的字符串,后面的字符串会过滤掉(存放在输入流中),若后面继续取字符串,则从输入流中获取。