C语言实现k错序列,第K极值C语言实现在VC上没有问题,但在OJ上测试出现问题

本文介绍了一段C语言代码,用于解决给定序列中第K小元素的问题,并检查其差值是否为质数。代码首先对序列进行选择排序,然后检查第K和第K-1元素之差的素数性质。然而,代码中存在错误,包括使用了C++的bool类型和引用,以及在OJ上编译错误。修复这些问题后,适用于C语言环境并进行相应调整。
摘要由CSDN通过智能技术生成

这是问题:

给定一个长度为N(0

这是本人的解答:

#include 

#include 

#define MAXSIZE 10000

typedef struct{

int key;

}Redtype;

typedef struct{

Redtype r[MAXSIZE];

int length;

}SqList;

void SelectSort(SqList &L){

int j, l;

Redtype temp;

for (int i = 0; i 

l = i ;

for (j = i + 1; j 

if (L.r[j].key 

l = j;

}

if (i != l){

temp = L.r[i];

L.r[i] = L.r[l];

L.r[l] = temp;

}

}

}

bool isPrimeNum(int x){

if (x 

return false;

else if (x == 2)

return true;

else{

for (int i = 2; i 

if (x%i == 0)

return false;

}

return true;

}

}

int main(){

SqList L;

int n,k,i,m;

scanf(“%d %d”, &n,&k);

if (n > MAXSIZE || k > n)

exit(0);

L.length = n;

for (i = 0; i 

scanf(“%d”, &L.r[i].key);

if (L.r[i].key 

break;

}

SelectSort(L);

m = L.r[n – k].key – L.r[k – 1].key;

if (isPrimeNum(m))

printf(“YES\n%d\n”, m);

else

printf(“NO\n%d\n”, m);

system(“pause”);

return 0;

}

求指导答!

解决方案

5

这里的序列,是数组吗?

10

出了什么问题?

10

Compiler Error。C语言好像没有bool类型。

40

你点开你的OJ上有显示错误:

error: expected “;”, “,” or “)” before “&” token void SelectSort(SqList &L){ ^

Main.c:29:1: error: unknown type name “bool” bool isPrimeNum(int x)

1.第一个错误是你使用了引用

2.第二个错误是你使用了bool

(bool和引用都是C++才有的)

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明第K极值C语言实现在VC上没有问题,但在OJ上测试出现问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值