我怎么这么菜


私信TA

用户名:xujingcheng

访问量:18146

签 名:

Break Away

等  级
排  名 712
经  验 3889
参赛次数 4
文章发表 44
年  龄 10
在职情况 学生
学  校 NUAA
专  业

  自我简介:

毕业前学一下编程, 嗯! 是这样。

#include<stdio.h>
#include"malloc.h"
#include"math.h"
int sort(int a[],int n,int k);
int func(int n);
int main()
{
    int n,k,i,sub;
    scanf("%d%d",&n,&k);
    int *pt=(int*)malloc(n*sizeof(int));
    for(i=0;i<n;i++)
    scanf("%d",&pt[i]);
    sub=sort(pt,n,k);
    if(func(sub)) printf("YES\n%d\n",sub);
    else printf("NO\n%d\n",sub);
    return 0;
}
int sort(int a[],int n,int k)
{
    int i,j,temp;
    //int c1=0,c2=0,min_k,max_k;
    for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++)
    if(a[i]>a[j])
    {temp=a[i];a[i]=a[j];a[j]=temp;}
   /* for(i=0;i<n-1;i++)              同样的数同一个大小等级
    {
        if(a[i]!=a[i+1]) c1++;
        if(c1==k)
        {
            min_k=a[i];
            break;
        }
    }
    for(i=n-1;i>0;i--)
    {
        if(a[i]!=a[i-1]) c2++;
        if(c2==k)
        {
            max_k=a[i];
            break;
        }
    }*/
    return a[n-k]-a[k-1];
}

int func(int n)
{
    int i=2,flag=1;
    if(n<=1) flag=0;        对于小于2的数直接NO
    else
    {
    for(;i<=sqrt(n);i++)
    if(n%i==0)
    flag=0;
    }
    return flag;
}
 

0.0分

0 人评分

  评论区

  • «
  • »