⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c

📁 一个2002年华东地区数模联赛
💻
字号:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define N 36
#define X 10
#define exp 0.1
struct point{double x,y;};
double f(double,double,double,double,double,double,double*,double*);
void main()
{
	int i=0,j,k,l=0,m=0,n=0;double s=0,sx=0,sy=0,ri,max,min,R;point p[N],temp,o[N/3]; 
	FILE *pf;
	pf=fopen("e:\\aaa.txt","r");
	while(fscanf(pf,"%lf%lf\n",&p[i].x,&p[i].y)!=EOF) i++;/*数据的读入*/
	for(i=0;i<35;i++)/*数据按圆周排序*/
	{
		k=i;
		for(j=i+1;j<N;j++)
			if(p[j].y<p[k].y)
				k=j;
		temp=p[k];p[k]=p[i];p[i]=temp;
	}/*对y进行排序*/
	for(i=0;i<(N/2-1);i++)
	{
		k=i;
		for(j=i+1;j<N/2;j++)
			if(p[j].x<p[k].x)
				k=j;
		temp=p[k];p[k]=p[i];p[i]=temp;
	}/*对前半部分x进行排序*/
	for(i=N/2;i<N;i++)
	{
		k=i;
		for(j=i+1;j<N;j++)
			if(p[j].x>p[k].x)
				k=j;
		temp=p[k];p[k]=p[i];p[i]=temp;
	}/*对后半部分x进行排序*/
	for(i=0;i<N/3;i++)/*计算12个圆的圆心和它们的算术平均值*/
	{
		j=i+N/3;k=i+2*N/3;
		f(p[i].x,p[i].y,p[j].x,p[j].y,p[k].x,p[k].y,&o[i].x,&o[i].y);
		sx=sx+o[i].x;
		sy=sy+o[i].y;
	}
	sx=3*sx/N;sy=3*sy/N;
	ri=sqrt((p[0].x-sx)*(p[0].x-sx)+(p[0].y-sy)*(p[0].y-sy));
	max=min=ri;
	s=ri;
	for(l=1;l<N;l++)/*检验*/
	{
		ri=sqrt((p[l].x-sx)*(p[l].x-sx)+(p[l].y-sy)*(p[l].y-sy));
		if(ri>=X+exp||ri<=X-exp) 
		{printf("不合格\n"); exit(0);}
		else
		{
			if(ri>max) {max=ri;m=l;}
			if(ri<min) {min=ri;n=l;}
			s=s+ri;
		}
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -