BJFUOJ
#include<bits/stdc++.h>
using namespace std;
int maxx = -0x7fffffff;
typedef struct Lnode{
int data;
struct Lnode *next;
}Lnode,*Linklist;
void Init_Linklist (Linklist &l){
l = new Lnode;
l->next = NULL;
}
void CreatLinklist(Linklist &l,int n){
Linklist p = l;
Linklist r;
for(int i=0;i<n;i++){
r = new Lnode;
cin>>r->data;
if(r->data > maxx){
maxx = r->data;
}
r->next = p->next;
p->next = r;
p = r;
}
}
void FindK(Linklist l,int k,int n){
Linklist p = l->next;
int i = 1;
while(p){
if(i == k){
cout<<"正数第"<<k<<"个的值为:"<<p->data<<endl;
}
if(i == n - k + 1){
cout<<"倒数第"<<k<<"个的值为:"<<p->data<<endl;
break;
}
i++;
p = p->next;
}
}
void Sort(Linklist &l,int n){
for(int i = 0;i < n - 1;i++){
Linklist r = l->next;
while(r->next){
if(r->data > r->next->data){
swap(r->data,r->next->data);
}
r = r->next;
}
}
}
void OutPut(Linklist &l){
Linklist p = l->next;
while(p->next){
cout<<p->data<<" ";
p = p->next;
}
cout<<p->data<<endl;
}
int main(){
int n,k;
cin>>n;
Linklist l;
Init_Linklist(l);
CreatLinklist(l,n);
cout<<"最大值为:"<<maxx<<endl;
cin>>k;
FindK(l,k,n);
Sort(l,n);
OutPut(l);
}