题目描述:
已知:二进制数据文件 data.bin 中存放了若干个整数,请编写程序完成如下功能:
1.编写程序读取所有数据。
2.以每相邻两个整数为一对按顺序构成二维平面上的坐标点。
3.以每个坐标点为圆心,以该点与其后面第一个点的欧氏距离为半径 r 。计算每个圆包含的坐标点数。计算最后一个点时以其和第一个点的欧氏距离为半径。
4.计算所有圆的点密度值,然后输出点密度值最大的 5 个坐标点以及相应圆中包含的点数和点密度值。 输出格式要求:
坐标点 | 包含点数 | 点密度 |
---|---|---|
(x坐标,y坐标) | (占5列,右对齐) | (占7列,右对齐,保留2位小数) |
其中:圆的点密度为圆包含的点数除以圆面积,如果点在圆上,则也算圆包含该点,在计算点密度时,圆心也算一个点. 计算圆面积时Pi=3.14。
输入描述:
苏州大学计算机2017年上机复试真题模拟实验数据
https://download.youkuaiyun.com/download/tsc5214/11020329
输出描述:
(64,63) 2 0.32
(72,70) 6 0.05
(63,62) 9 0.04
(66,62) 16 0.04
(69,60) 13 0.04
代码:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define Pi 3.14
int input(struct coordinate co[]);
void output(struct coordinate co[]);
void calculateR(struct coordinate co[],int num);
void sort(struct coordinate co[],int num);
struct coordinate{
int x;
int y;
double R;
int inpoint;
double pointdensity;
};
int main(){
struct coordinate co[1000];
int count=0;
count=input(co);
calculateR(co,count