求助大佬Orz
查看原帖
求助大佬Orz
546567
Tlin_楼主2021/8/25 14:18

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

[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;
}
2021/8/25 14:18
加载中...