关于第三个错
2026-08-01 00:36:23
发布于:四川
7阅读
0回复
0点赞
如果有第三个点错,就是两个数没特判(会交换两次),可以特判一下。
#include<bits/stdc++.h>
using namespace std;
struct node{
double k;
int i;
}nd[101];
double a[101];
bool cmp(node x,node y){
return x.k>y.k;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
nd[i].i=i;
nd[i].k=a[i];
}
sort(nd+1,nd+1+n,cmp);
if(n==2)
{
printf("%.02f %.02f",nd[1].k,nd[2].k);
return 0;
}
int x=nd[1].i;
swap(a[1],a[x]);
x=nd[2].i;
swap(a[n],a[x]);
for(int i=1;i<=n;i++)
{
printf("%.02f ",a[i]);
}
}
这里空空如也





有帮助,赞一个