原题链接:蓝桥杯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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复