解题思路: 获取最大值 - 获取最小值 ,直接判断
注意事项: 注意排好序
参考代码:
#include<stdio.h>
int isprime(int k) // isprime判断 是否 为 质数
{
int i ;
if(k<2) return 0 ; // 如果小于 2 肯定不是 质数 ,直接返回
for (i = 2 ; i*i <= k ; i++)
if(k%i == 0) return 0;
return 1;
}
int fun(int n , int k )
{
int i , j , a[n] ;
int max , min ;
for (i = 0 ; i < n ; i++)
scanf("%d" ,&a[i]) ; // 获取 数据
for (i = 0 ; i < n ; i++)
for (j = i ; j < n ; j++)
if(a[i]>a[j]){ max = a[i] ; a[i] = a[j] ; a[j] = max ; } // 比较法排序
min = a[k-1] ; // 获取 最小值
max = a[n-k] ; // 获取 最大值
if(isprime(max-min)) printf("%s\n%d","YES",max-min) ; //函数调用 判断
else printf("%s\n%d","NO",max-min) ;
}
int main()
{
int n , k ;
scanf("%d%d" ,&n,&k) ;
fun(n,k) ;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复