原题链接:蓝桥杯2013年第四届真题-错误票据
解题思路:
注意事项:
参考代码:
#include <stdio.h>
#include <string.h>
char b[10]; //截取数据
long int zh(int le)//字符型转换整型;
{
long int s=0,i,t=1;
for(i=1;i<=le;i++)
{ s+=(b[le-i]-48)*t;t*=10;}
return s;
}
int main()
{
int n,j=0,i,k,len,t1=0,t2=0;
long int sj[101];
char a[1000];
long int max, min,cf,cq;
scanf("%d\n",&n);
while(n--)
{ k=0;
gets(a);
len=strlen(a);
for(i=0;i<=len;i++)
{
if(48<=a[i]&&a[i]<=57)b[k++]=a[i];//为数字则存入 截取数据
else if(48<=a[i-1]&&a[i-1]<=57||k!=0)//当前一个为数字后一个为空格 或字符串末尾 处理当前截取数据
{ sj[j++]=zh(k);k=0;//存入 数据数组
if(max<sj[j-1]||j==1)max=sj[j-1];//找最大值
if(min>sj[j-1]||j==1)min=sj[j-1];//找最小值
}
}
}
while(min<=max)//从前 后 同时数据查找
{ for(i=0;i<j;i++)
{ if(sj[i]==min) t1++; //找到为1 未找到为 0 找到 多次为 2
if(sj[i]==max) t2++;
}
if(t1==2)cf=min;
if(t2==2)cf=max;
if(t1==0)cq=min;
if(t2==0)cq=max;
t1=t2=0;
max--;min++;
}
printf("%ld %ld",cq,cf);
return 0;
}0.0分
5 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复