2013年蓝桥杯A组真题 1.错误票据 知识点:输入问题

题目:1.错误票据 - 蓝桥云课 (lanqiao.cn)

解析:2013年c++A组题7_哔哩哔哩_bilibili

这道题问题倒不是很难,但是输入输出比较麻烦:

js 复制代码
#include<bits/stdc++.h>
using namespace std;

vector<int>v; 
map<int,int>m;
int a[1005];

void s2i(string &temp,int &a)
{
	stringstream ss;
	ss<<temp;
	ss>>a;
}
int main()
{
    int line;cin>>line;getchar(); 
    
    int index=0;
	for(int i=0;i<line;i++)
	{
       string x;
		getline(cin,x);
		
		//拆分
		istringstream ss(x); 
		string temp;
	    while(getline(ss,temp,' ')) 
	    {
	        s2i(temp,a[index++]);
		}
	 
	 } 
	
		for(int i=1;i<index;i++)
		{
			if(a[i]==a[i-1]+2)printf("%d ",a[i]-1);
			
			if(a[i]==a[i-1])printf("%d",a[i]);
		}
	 
	 
	
	 
	return 0;
}

最后要排序,不排序就错了。这是没排序的:

原因:

没有排序时的数组a:

当遍历到a[i-1]=12,a[i]=10的时候,因为差值为2,又输出了a[i]-1,即11.

因此我们需要排序:

排完序的:

看答案没毛病,但是实际上还有一点小问题,就是假如我们在遍历的工程中先遇到重复的就直接输出了,但是题目要求一定要先输出断号的再输出重复的,因此我们需要用两个变量来保存一下,最后输出变量:

js 复制代码
#include<bits/stdc++.h>
using namespace std;


int a[10005];

void s2i(string &temp,int &a)
{
	stringstream ss;
	ss<<temp;
	ss>>a;
}
int main()
{
    int line;cin>>line;getchar(); 
    
    int index=0;
	for(int i=0;i<line;i++)
	{
       string x;
		getline(cin,x);
		
		//拆分
		istringstream ss(x); 
		string temp;
	    while(getline(ss,temp,' ')) 
	    {
	        s2i(temp,a[index++]);
		}
	 
	 } 
	 
     //cout<<index<<endl;  检查输入的数据个数 
     
	 int duanhao,chongfu;
	  sort(a,a+index);
		for(int i=1;i<index;i++)
		{
			if(a[i]==a[i-1]+2) duanhao=a[i]-1;
			
			if(a[i]==a[i-1])   chongfu=a[i];
		}
	 
	 printf("%d %d",duanhao,chongfu);

	 
	return 0;
}
相关推荐
嗷嗷哦润橘_1 天前
从萝卜纸巾猫到桌游:“蒸蚌大开门”的设计平衡之旅
人工智能·算法·游戏·概率论·桌游
TracyCoder1231 天前
Java String:从内存模型到不可变设计
java·算法·string
我是大咖1 天前
二维数组与数组指针
java·数据结构·算法
筵陌1 天前
算法:动态规划
算法·动态规划
大江东去浪淘尽千古风流人物1 天前
【DSP】xiBoxFilter_3x3_U8 dsp VS cmodel
linux·运维·人工智能·算法·vr
zhuqiyua1 天前
【无标题】
算法
Xの哲學1 天前
Linux Tasklet 深度剖析: 从设计思想到底层实现
linux·网络·算法·架构·边缘计算
Imxyk1 天前
力扣:1553. 吃掉 N 个橘子的最少天数(记忆化搜索,Dijkstra解法)
算法
爱编码的傅同学1 天前
【今日算法】Leetcode 581.最短无序连续子数组 和 42.接雨水
数据结构·算法·leetcode
Σίσυφος19001 天前
线性与非线性 、齐次非齐次
算法