求助大佬
查看原帖
求助大佬
389540
imfkwk楼主2020/11/8 11:42
#include<bits/stdc++.h>
using namespace std;
int n,k,a[5000000];
void f(int st,int ed)
{
	int i=st,j=ed,x=a[(i+j)/2];
	while(i<j)
	{
		while(a[i]<x)i++;
		while(a[j]>x)j--;
		swap(a[i],a[j]);
	}
	if(i>k)f(st,i-1);
	if(i<k)f(i+1,ed);
	else
	{
		cout<<a[k];
		//exit(0)
	}
}
int main()
{
	cin>>n>>k;
	for(int i=0;i<n;i++)
	cin>>a[i];
	f(0,n-1);
}

不懂就问,为甚么不加exit(0)会有多次输出?每次调用函数都有唯一的条件,可是为甚么会运行多次呢?

2020/11/8 11:42
加载中...