社区讨论
求助大佬Orz
P1923【深基9.例4】求第 k 小的数参与者 4已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lobwcc6o
- 此快照首次捕获于
- 2023/10/30 04:01 2 年前
- 此快照最后确认于
- 2023/11/04 09:05 2 年前
今天在做此题的时候,递归函数部分出现了这个报错
CPP[Error] too few arguments to function 'void findk(int, int, int)'
翻译: [错误]函数“void findk(int,int,int)”的参数太少
请问这是怎么回事,为什么会出现这种参数
感谢大佬Orz
(附代码)
CPP#include <bits/stdc++.h>
#define maxn 50000000
using namespace std;
int a[maxn]={0}, ans=0, k;
void findkth ( int l, int r,)
{
if (l==r)
{
ans=a[l];
return ;
}
int i=1, j=i, flag=a[(l+r)/2], tmp;
do
{
while (a[i]<flag) i++;
while (a[j]>flag) j--;
if (i<=j)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
i++;
j--;
}
}
while (i<=j);
if (k<=j)findkth( l, j);
else if (i<=k)findkth ( l, j);
else findkth ( j+1, i-1);
}
int main(){
int n;
cin >> n>> k;
for (int i=0; i<n; i++) cin >> a[i];
findkth ( 1, n);
for (int i=0; i<n; i++) cout << a[i]<< " ";
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...