求助大佬Orz

P1923 【深基9.例4】求第 k 小的数

Tlin_ @ 2021-08-25 14:18:02

今天在做此题的时候,递归函数部分出现了这个报错

[Error] too few arguments to function 'void findk(int, int, int)'

翻译: [错误]函数“void findk(int,int,int)”的参数太少

请问这是怎么回事,为什么会出现这种参数 感谢大佬Orz

(附代码)

#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;
}

by Egg_eating_master @ 2021-08-25 14:20:52

void findkth ( int l, int r,)

你多打了一个逗号


by Valkyrie337 @ 2021-08-25 14:21:00

@Tlin_ 逗号打多了一个(((


by huyifei323 @ 2021-08-25 14:39:26

STL 大法好
用 nth_element


by Tlin_ @ 2021-08-25 16:59:25

@ConanKID 还真的是


|