#include <iostream>
#include <bits×dc++.h>
using namespace std;
int main() {
long long int n,a,b,i,j,k,m=0;
cin>>n>>a>>b;
long long int arr[n][2],arr1[n],brr1[n];
for(i=0;i<n;i++){
for(j=0;j<2;j++){
cin>>arr[i][j];
}
arr1[i]=(arr[i][0]-a)*(arr[i][0]-a)+(arr[i][1]-b)*(arr[i][1]-b);
brr1[i]=arr1[i];
}
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(arr1[i]<=arr1[j]){
arr1[i]=arr1[i];
}
else{
k=arr1[i];
arr1[i]=arr1[j];
arr1[j]=k;
}
}
}
for(i=0;i<3;i++){
for(j=0;j<n;j++){
if(arr1[i]==brr1[j]){
if(m!=j+1){
cout<<j+1<<endl;
m=j+1;
break;}
}
}
}
return 0;
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/47fb4271c6904c5b867e6d909493f74e.png "#left")
这个代码只有90分,问题出在哪里了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 这段代码的问题在于排序部分的逻辑有误。在第二个循环中,对数组进行排序时,并没有同时对原始数组的索引进行调整,导致最后输出的结果可能不正确。正确的做法是在排序时同时调整原始数组的索引,以便正确输出最终结果。
帮你调整了一下代码,你可以使用pair来存储原始数组的值和索引,然后对pair进行排序。这样可以确保排序的同时也能正确地调整原始数组的索引。以下是修改后的代码示例:(答题不易,还望采纳!)
#include <iostream> #include <vector> #include <algorithm> using namespace std; bool compare(pair<long long int, int> a, pair<long long int, int> b){ return a.first < b.first; } int main() { long long int n, a, b, i, j, k, m = 0; cin >> n >> a >> b; vector<pair<long long int, int>> arr(n); vector<long long int> arr1(n), brr1(n); for(i = 0; i < n; i++){ cin >> arr[i].first >> arr[i].second; arr1[i] = (arr[i].first - a) * (arr[i].first - a) + (arr[i].second - b) * (arr[i].second - b); brr1[i] = arr1[i]; } sort(arr.begin(), arr.end(), compare); for(i = 0; i < 3; i++){ cout << arr[i].second + 1 << endl; } return 0; }
解决 无用评论 打赏 举报
悬赏问题
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见
- ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
- ¥20 sentry如何捕获上传Android ndk 崩溃
- ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
- ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?
- ¥15 nasm x86 变量归零
- ¥65 Tree 树形控件实现单选功能,可以使用element也可以手写一个,实现全选为全选状态
- ¥60 寻抓云闪付tn组成网页付款链接
- ¥16 寻字节跳动内部人员帮推简历