| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1670 人关注过本帖
标题:请问这里为什么输出的顺序不一样
取消只看楼主 加入收藏
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
结帖率:96.88%
收藏
已结贴  问题点数:20 回复次数:3 
请问这里为什么输出的顺序不一样
图片附件: 游客没有浏览图片的权限,请 登录注册

#include <iostream>
#include <string.h>
#include <string>
#include <stdlib.h>
#include <stdio.h>
#include<cmath>
#include <algorithm>
#include <math.h>
 using namespace std;
struct research{
char name[13];
int x;
int y;
char kind[10];
};
int heng,zong;
int cmp(research a, research b ){
      if(((a.x-heng)*(a.x-heng)+(a.y-zong)*(a.y-zong))!=((b.x-heng)*(b.x-heng)+(b.y-zong)*(b.y-zong)))
        return ((a.x-heng)*(a.x-heng)+(a.y-zong)*(a.y-zong))<((b.x-heng)*(b.x-heng)+(b.y-zong)*(b.y-zong));
        return(strcmp(a.name,b.name));
}
int main()
{
   int n,m;
   cin>>n>>m;
   struct research a[n];
   for(int i=0;i<n;i++)
   {
       cin>>a[i].name>>a[i].x>>a[i].y>>a[i].kind;
   }
   int k;
   int cnt;
   int flag=0;
   for(int i=0;i<m;i++)
   {   cnt=0;
       char want[10];
       cin>>heng>>zong;
       cin>>want;
       cin>>k;
       sort(a,a+n,cmp);
       for(int j=0;j<n&&cnt<k;j++)
       {
           if(strcmp(a[j].kind,want)==0)
           { flag=1;
             cnt++;
             double dis=sqrt(((double)a[j].x-(double)heng)*((double)a[j].x-(double)heng)+((double)a[j].y-(double)zong)*((double)a[j].y-(double)zong));
             cout<<a[j].name<<' ';
             printf("%.3f\n",dis);
           }

       }
       if(!flag) cout<<endl;
   }

}
搜索更多相关主题的帖子: cin name include double int 
2020-06-15 15:54
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

//一个是数据大的在前面,一个是数据小的在前面,但我感觉cmp写的是一个意思

我想要两颗西柚。
2020-06-15 15:56
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
收藏
得分:0 
回复 3楼 fulltimelink
请问有解决的办法吗,还是得换一种方法

我想要两颗西柚。
2020-06-15 17:55
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
收藏
得分:0 
已解决,但是对于特别大的数据规模好像就会time limit,据说可以用快排什么的算法,我再想想吧,谢谢大家!

我想要两颗西柚。
2020-06-15 20:13
快速回复:请问这里为什么输出的顺序不一样
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018120 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved