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

📄 circle.c

📁 ulm大学1996-1999年的竞赛题和解题报告
💻 C
字号:
/* University of Ulm Programming Contest 1996   Problem C: Circle   Implementation: Mark Dettinger */#include <stdio.h>#include <math.h>#define PI 3.141592653589793#define pythagoras(a,b) (sqrt((a)*(a)+(b)*(b)))#define det(a,b,c,d) ((a)*(d)-(b)*(c))#define cramer1(a,b,c,d,e,f) (det(e,b,f,d)/det(a,b,c,d))#define cramer2(a,b,c,d,e,f) (det(a,e,c,f)/det(a,b,c,d))int main(){  FILE* input = fopen("circle.in","r");  int i;  double x[3],y[3],s,mx,my,r;  while (1)    {      for (i=0; i<3; i++)	fscanf(input,"%lf %lf",&x[i],&y[i]);      if (feof(input)) break;      s = cramer2(y[1]-y[0],y[1]-y[2],x[0]-x[1],x[2]-x[1],		  0.5*(x[2]-x[0]),0.5*(y[2]-y[0]));      mx = 0.5*(x[1]+x[2])+s*(y[2]-y[1]);      my = 0.5*(y[1]+y[2])+s*(x[1]-x[2]);      r = pythagoras(mx-x[0],my-y[0]);      printf("%.2f\n",2*PI*r);    }  fclose(input);  return 0;}

⌨️ 快捷键说明

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