sort by modulus of a complex number

2023-12-06 03:28
文章标签 number sort complex modulus

本文主要是介绍sort by modulus of a complex number,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

描述

复数E包含实部x和虚部y, E=x+yi;E的模为:

输入n(<=1000)和n对(x,y);

按模数升序对复合体进行排序,如果模数相等,则按输入顺序排序。

排序后输出n行of (x_i,y_i,mod_i),保留2个十进制小数。

输入

输入n和n对(x,y);

输出

输出排序后的n行(x,y,mod)。

样例输入
3
2 2
1 1
3 3
样例输出
1.00 1.00 1.41
2.00 2.00 2.83
3.00 3.00 4.24
code1(给struct取小名
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
typedef struct{double  x;double  y;double mo;int index;
}Complexnum;
int cmp(const void*a,const void *b){const Complexnum *num1=(const Complexnum*)a;const Complexnum *num2=(const Complexnum*)b;if(num1->mo>num2->mo) return 1;if(num1->mo<num2->mo) return -1;if(num1->index>num2->index) return 1;if(num1->index<num2->index) return -1;return 0;
}
int main(){int n;while(scanf("%d",&n)!=EOF){Complexnum *complexnum=(Complexnum *)malloc(n*sizeof(Complexnum));for(int i=0;i<n;i++){scanf("%lf%lf",&complexnum[i].x,&complexnum[i].y);double mo1=sqrt(complexnum[i].x*complexnum[i].x+complexnum[i].y*complexnum[i].y);complexnum[i].mo=mo1;complexnum[i].index=i;}qsort(complexnum,n,sizeof(Complexnum),cmp);for(int i=0;i<n;i++){printf("%.2lf %.2lf %.2lf\n",complexnum[i].x,complexnum[i].y,complexnum[i].mo);}free(complexnum);}return 0;
}
code2(不给struct取小名)
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
typedef struct{double  x;double  y;double mo;int index;
}Complexnum;
int cmp(const void*a,const void *b){const Complexnum *num1=(const Complexnum*)a;const Complexnum *num2=(const Complexnum*)b;if(num1->mo>num2->mo) return 1;if(num1->mo<num2->mo) return -1;if(num1->index>num2->index) return 1;if(num1->index<num2->index) return -1;return 0;
}
int main(){int n;while(scanf("%d",&n)!=EOF){Complexnum *complexnum=(Complexnum *)malloc(n*sizeof(Complexnum));for(int i=0;i<n;i++){scanf("%lf%lf",&complexnum[i].x,&complexnum[i].y);double mo1=sqrt(complexnum[i].x*complexnum[i].x+complexnum[i].y*complexnum[i].y);complexnum[i].mo=mo1;complexnum[i].index=i;}qsort(complexnum,n,sizeof(Complexnum),cmp);for(int i=0;i<n;i++){printf("%.2lf %.2lf %.2lf\n",complexnum[i].x,complexnum[i].y,complexnum[i].mo);}free(complexnum);}return 0;
}

这篇关于sort by modulus of a complex number的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/460240

相关文章

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

题目1380:lucky number

题目1380:lucky number 时间限制:3 秒 内存限制:3 兆 特殊判题:否 提交:2839 解决:300 题目描述: 每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然

Jenkins 通过 Version Number Plugin 自动生成和管理构建的版本号

步骤 1:安装 Version Number Plugin 登录 Jenkins 的管理界面。进入 “Manage Jenkins” -> “Manage Plugins”。在 “Available” 选项卡中搜索 “Version Number Plugin”。选中并安装插件,完成后可能需要重启 Jenkins。 步骤 2:配置版本号生成 打开项目配置页面。在下方找到 “Build Env

stl的sort和手写快排的运行效率哪个比较高?

STL的sort必然要比你自己写的快排要快,因为你自己手写一个这么复杂的sort,那就太闲了。STL的sort是尽量让复杂度维持在O(N log N)的,因此就有了各种的Hybrid sort algorithm。 题主你提到的先quicksort到一定深度之后就转为heapsort,这种是introsort。 每种STL实现使用的算法各有不同,GNU Standard C++ Lib

【Hdu】Minimum Inversion Number(逆序,线段树)

利用线段树在nlogn的时间复杂度内求一段数的逆序。 由于给的序列是由0 ~ n -1组成的,求出初始的逆序之后可以递推出移动之后的逆序数。 #include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const in

【JavaScript】基本数据类型与引用数据类型区别(及为什么String、Boolean、Number基本数据类型会有属性和方法?)

基本数据类型   JavaScript基本数据类型包括:undefined、null、number、boolean、string。基本数据类型是按值访问的,就是说我们可以操作保存在变量中的实际的值。 1)基本数据类型的值是不可变的 任何方法都无法改变一个基本类型的值,比如一个字符串: var name = "change";name.substr();//hangconsole.log

C/C++经典排序问题,sort函数使用

目录 1. 前言 2. 正文 2.1 问题 2.2 解决办法 2.2.1 思路 2.2.2 代码实现 2.2.3 测试结果 3. 备注 1. 前言 大家在学习C语言的时候,是不是经常被排序算法折磨的很难那首,其实都是但是在C++中有专门的,排序函数,而且支持自定义排序算法。下面我就带大家看看,sort函数简单的数组排序中的应用。 2. 正文 2.1 问题 题目描述

Complex Networks Package for MatLab

http://www.levmuchnik.net/Content/Networks/ComplexNetworksPackage.html 翻译: 复杂网络的MATLAB工具包提供了一个高效、可扩展的框架,用于在MATLAB上的网络研究。 可以帮助描述经验网络的成千上万的节点,生成人工网络,运行鲁棒性实验,测试网络在不同的攻击下的可靠性,模拟任意复杂的传染病的传

Hive中order by,sort by,distribute by,cluster by的区别

一:order by order by会对输入做全局排序,因此只有一个Reducer(多个Reducer无法保证全局有序),然而只有一个Reducer,会导致当输入规模较大时,消耗较长的计算时间。关于order by的详细介绍请参考这篇文章:Hive Order by操作。 二:sort by sort by不是全局排序,其在数据进入reducer前完成排序,因此,如果用sort