一道别的网站的题QAQ
  • 板块题目总版
  • 楼主Mr_Pang
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/12/17 19:34
  • 上次更新2023/12/17 21:38:01
查看原帖
一道别的网站的题QAQ
1125683
Mr_Pang楼主2023/12/17 19:34

给定一个长度为N(0< n< =10000)的序列,保证每一个序列中的数字a[i]是小于maxlongint的非负整数,编程要求求出整个序列中第k大的数字减去第k小的数字的值m,并判断m是否为质数。(0<k<=n)

#include<stdio.h>
void sort(int arr[], int N)
{
	int i, j,temp;
	for (i = 0; i < N - 2; i++)
	{
		for (j = i + 1; j < N - 1; j++)
		{
			if(arr[i]>arr[j])
				{
				temp = arr[j];
				arr[j] = arr[i];
				arr[i] = temp;
				}
		}
	}
}
int sushu(int x)
{
	int i;
	for (i = 2; i < x; i++)
	{
		if (x % i== 0)
		{
			return 0;
			break;
		}
	}
	return 1;
}
void haha(int arr[], int N,int k)
{
	int m;
	m = arr[N - k] - arr[k - 1];
	if (sushu(m))
		printf("YES\n");
	else
		printf("NO\n");
	printf("%d", m);
}
int main()
{
	int N, i,k;
	int arr[10009];
	scanf("%d%d", &N,&k);
	for (i = 0; i < N; i++)
		scanf("%d", &arr[i]);
	sort(arr, N);
	haha(arr, N,k);
	return 0;
}

我的代码只能跑简单的数,数组里面很多数或者特别大的数就不行了QAQ


2023/12/17 19:34
加载中...