解题思路:

注意事项:

参考代码:

#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;
}


点赞(4)
 

0.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 2 条评论

黑暗中的冷芒 4年前 回复TA
搞错了搞错了,忘记把断号测试数据和重号测试数据放进去了。抱歉答主。
黑暗中的冷芒 4年前 回复TA
代码有问题,当最大值与最小值并不在最后一列数据当中时,输出会超限(原因是sj数组只能存放最后一组数据),比如:
3
1 5 4
2 7 9
3 6 8