继续分享蓝桥杯的一道题,错误票据

答案来源于蓝桥杯老师
题目内容:某公司一年出票据,票据是连号的,不允许有断开,不允许有重复,数据规模就不说了,那个随便,现在要求如下:
输入一个n代表n行数据
n行中每行不重复,不固定有几个数据,每个数据之间用空格来隔开,最终输出 形式为 两个整数 m,n
m为断开 的数,n为重复的数字。
编码如下

#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#define Max 10000
using namespace std;
int line;
int data[Max];
void change(string &str,int &num)
{
   stringstream ss;
   ss<<str;
   ss>>num;
}
int main()
{
	cin>>line;
	getchar();//用来接收换行符,使新的数据变道下一行
	int index=0;//数组的下标
	for(int i=0;i<line;++i)
	{
		  string s;
		getline(cin ,s);//getline(cin,s),s需要是string,需要引入string头文件,std::string空间引入
		istringstream  iss(s);
		string tmp;
		while(getline(iss,tmp,' '))//getline(<字符数组chs>,<读取字符的个数n>,<终止符>)
			{
				change(tmp,data[index++]);
			
			}	
	}
	sort(data,data+index);
    int a,b;
	for( i=1;i<index;++i)
	{
	   if(data[i]==data[i-1]+2)
		   a=data[i]-1;
	    if(data[i]==data[i-1])
			b=data[i];
	}
	cout<<a<<" "<<b<<endl;
return 0;
}
发布了16 篇原创文章 · 获赞 3 · 访问量 1233

猜你喜欢

转载自blog.csdn.net/delete_bug/article/details/105033758
今日推荐