算法提高 12-1三角形  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
  输入数据中每一个数的范围。
  例:doule型表示数据。
 
作者注释:本题不难,只是计算公式要知道——上百度查一下外心,重心,中心的公式咯。
代码如下:
  1. /*
  2. 求三角形的外接圆心坐标:O(x,y)
  3. 三角形:a(x1,y1) b(x2,y2) c(x3,y3)
  4. 满足:A1*x+B1y=C1;A2*x+B2y=C2;
  5. 根据克拉默法则:
  6. x=((C1*B2)-(C2*B1))/((A1*B2)-(A2*B1));
  7. y=((A1*C2)-(A2*C1))/((A1*B2)-(A2*B1));
  8. */
  9. /*
  10. 求三角形的外心的坐标:
  11. 满足:A1*x+B1y=C1;A2*x+B2y=C2;
  12. 根据克拉默法则:
  13. x=((C1*B2)-(C2*B1))/((A1*B2)-(A2*B1));
  14. y=((A1*C2)-(A2*C1))/((A1*B2)-(A2*B1));
  15. */
  16. #include<stdio.h>
  17. #include<math.h>
  18. #include<string.h>
  19. int x[],y[];
  20. void zc(){
  21. double a=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
  22. double b=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
  23. double c=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
  24. printf("%.2lf\n",sqrt(a)+sqrt(b)+sqrt(c));
  25. }
  26. void mj(){
  27. double a=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
  28. double b=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
  29. double c=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
  30. a=sqrt(a);
  31. b=sqrt(b);
  32. c=sqrt(c);
  33. double s=(a+b+c)/;
  34. s=s*(s-a)*(s-b)*(s-c);
  35. printf("%.2lf\n",sqrt(s));
  36. }
  37. void waixin(double &a,double &b){
  38. double A1=*(x[]-x[]);
  39. double B1=*(y[]-y[]);
  40. double C1=(x[]*x[]+y[]*y[]-x[]*x[]-y[]*y[]);
  41. double A2=*(x[]-x[]);
  42. double B2=*(y[]-y[]);
  43. double C2=x[]*x[]+y[]*y[]-x[]*x[]-y[]*y[];
  44.  
  45. a=((C1*B2)-(C2*B1))/((A1*B2)-(A2*B1));
  46. b=((A1*C2)-(A2*C1))/((A1*B2)-(A2*B1));
  47. }
  48. void zhongxin(double &c,double &d){
  49. c=(x[]+x[]+x[])/3.0;
  50. d=(y[]+y[]+y[])/3.0;
  51. }
  52. main(){
  53. for(int i=;i<=;i++){
  54. scanf("%ld%ld",&x[i],&y[i]);
  55. }
  56. zc();
  57. mj();
  58. double a,b;
  59. waixin(a,b);
  60. printf("%.2lf %.2lf\n",a,b);
  61. double c,d;
  62. zhongxin(c,d);
  63. printf("%.2lf %.2lf",c,d);
  64. }

C语言 · 三角形的更多相关文章

  1. C语言 · 三角形面积

     算法提高 三角形面积   时间限制:1.0s   内存限制:256.0MB      问题描述 由三角形的三边长,求其面积. 提示:由三角形的三边a,b,c求面积可以用如下的公式: s=(a+b+c ...

  2. 【OpenGL4.0】GLSL渲染语言入门与VBO、VAO使用:绘制一个三角形 【转】

    http://blog.csdn.net/xiajun07061225/article/details/7628146 以前都是用Cg的,现在改用GLSL,又要重新学,不过两种语言很多都是相通的. 下 ...

  3. C 语言实例 - 创建各类三角形图案

    C 语言实例 - 创建各类三角形图案 创建三角形图案. 实例 - 使用 * 号 #include <stdio.h> int main() { int i, j, rows; printf ...

  4. C语言 · 数字三角形 · 算法训练

    问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1<三角形行数≤100: ...

  5. 【C语言】判断三角形类型

    根据输入的三角形的三边判断三角形的类型,并输出其面积和类型. #include<stdio.h> #include<stdlib.h> #include<math.h&g ...

  6. C语言 · 数字三角形

    算法训练 数字三角形   时间限制:1.0s   内存限制:256.0MB      问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字 ...

  7. 用c语言打印一个三角形

    #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ...

  8. 【C语言】已知三角形三边长,求三角形面积

    一. 数学基础: 已知三角形的三边,计算三角形面积,需要用到海伦公式: 即p=(a+b+c)/2 二. 算法: 输入三个边长,套用海伦公式计算面积,并输出. 可以先判断是否可以构成三角形,即任意两边之 ...

  9. C 语言实例 - 判断三边能否构成三角形

    原理: 要判断输入的三条边能否够成三角形,只需满足条件两边之和大于第三边即可. #include<stdio.h> int main() { printf("请输入三个边长:\n ...

随机推荐

  1. HDUOJ---Hamming Distance(4712)

    Hamming Distance Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...

  2. pandas 的数据结构Series与DataFrame

    pandas中有两个主要的数据结构:Series和DataFrame. [Series] Series是一个一维的类似的数组对象,它包含一个数组数据(任何numpy数据类型)和一个与数组关联的索引. ...

  3. PHP API中,MYSQL与MYSQLI的持久连接区别

    转载自:http://www.cnxct.com/some-differences-between-mysql-and-mysqli-of-persistent-connection/ 很久很久以前, ...

  4. ubuntu 安装 LAMP环境

    http://jingyan.baidu.com/article/a681b0de36ad683b18434691.html

  5. AP_创建标准发票后会计科目的变化(概念)

    2014-06-04 Created By BaoXinjian 1. 创建Invoice,并查看所创建的科目

  6. 《Linux Device Drivers》第十五章 内存映射和DMA——note

    简单介绍 很多类型的驱动程序编程都须要了解一些虚拟内存子系统怎样工作的知识 当遇到更为复杂.性能要求更为苛刻的子系统时,本章所讨论的内容迟早都要用到 本章的内容分成三个部分 讲述mmap系统调用的实现 ...

  7. 解决Mac OS X 升级10.10(Yosemite)后ADT(Eclipse)无法找到真机

    升级Yosemite之后继续开发Android,发现当编译版本高于设备版本的时候设备选择器找不到真机了,WTF!难道要改低版本SDK开发不成?臣妾做不到啊! 后来捣鼓了一阵,发现解决方案有两个: 1. ...

  8. pandas 按照某一列进行排序

    pandas排序的方法有很多,sort_values表示根据某一列排序 pd.sort_values("xxx",inplace=True) 表示pd按照xxx这个字段排序,inp ...

  9. Spring AOP声明式事务异常回滚(转)

    转:http://hi.baidu.com/iduany/item/20f8f8ed24e1dec5bbf37df7 Spring AOP声明式事务异常回滚 近日测试用例,发现这样一个现象:在业务代码 ...

  10. Centos网络配置小工具

    之前在CentOS 6下编辑网卡,直接使用setup工具就可以了. 但在新版的CentOS 7里,setuptool已经没有网络编辑组件了,取而代之的是NetworkManager Text User ...