算法提高 12-1三角形  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  为二维空间中的点设计一个结构体,在此基础上为三角形设计一个结构体。分别设计独立的函数计算三角形的周长、面积、中心和重心。输入三个点,输出这三个点构成的三角形的周长、面积、外心和重心。结果保留小数点后2位数字。
样例输出
与上面的样例输入对应的输出。
例:
数据规模和约定
  输入数据中每一个数的范围。
  例:doule型表示数据。
 
作者注释:本题不难,只是计算公式要知道——上百度查一下外心,重心,中心的公式咯。
代码如下:
 /*
求三角形的外接圆心坐标:O(x,y)
三角形:a(x1,y1) b(x2,y2) c(x3,y3)
满足:A1*x+B1y=C1;A2*x+B2y=C2;
根据克拉默法则:
x=((C1*B2)-(C2*B1))/((A1*B2)-(A2*B1));
y=((A1*C2)-(A2*C1))/((A1*B2)-(A2*B1));
*/
/*
求三角形的外心的坐标:
满足:A1*x+B1y=C1;A2*x+B2y=C2;
根据克拉默法则:
x=((C1*B2)-(C2*B1))/((A1*B2)-(A2*B1));
y=((A1*C2)-(A2*C1))/((A1*B2)-(A2*B1));
*/
#include<stdio.h>
#include<math.h>
#include<string.h>
int x[],y[];
void zc(){
double a=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
double b=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
double c=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
printf("%.2lf\n",sqrt(a)+sqrt(b)+sqrt(c));
}
void mj(){
double a=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
double b=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
double c=(x[]-x[])*(x[]-x[])+(y[]-y[])*(y[]-y[]);
a=sqrt(a);
b=sqrt(b);
c=sqrt(c);
double s=(a+b+c)/;
s=s*(s-a)*(s-b)*(s-c);
printf("%.2lf\n",sqrt(s));
}
void waixin(double &a,double &b){
double A1=*(x[]-x[]);
double B1=*(y[]-y[]);
double C1=(x[]*x[]+y[]*y[]-x[]*x[]-y[]*y[]);
double A2=*(x[]-x[]);
double B2=*(y[]-y[]);
double C2=x[]*x[]+y[]*y[]-x[]*x[]-y[]*y[]; a=((C1*B2)-(C2*B1))/((A1*B2)-(A2*B1));
b=((A1*C2)-(A2*C1))/((A1*B2)-(A2*B1));
}
void zhongxin(double &c,double &d){
c=(x[]+x[]+x[])/3.0;
d=(y[]+y[]+y[])/3.0;
}
main(){
for(int i=;i<=;i++){
scanf("%ld%ld",&x[i],&y[i]);
}
zc();
mj();
double a,b;
waixin(a,b);
printf("%.2lf %.2lf\n",a,b);
double c,d;
zhongxin(c,d);
printf("%.2lf %.2lf",c,d);
}

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. zookeeper与kafka安装部署及java环境搭建(发布订阅模式)

    1. ZooKeeper安装部署 本文在一台机器上模拟3个zk server的集群安装. 1.1. 创建目录.解压 cd /usr/ #创建项目目录 mkdir zookeeper cd zookee ...

  2. Mac下搭建svn服务器和XCode配置svn

    先打开命令行终端. 1.创建svn repository svnadmin create /yourpath/svnroot/repository 2.配置svn用户权限. / yourpath /s ...

  3. PL SQL基本内容(原创)

    本节介绍PL SQL的基本内容 本节所举示例数据来源oracle用户scott下的emp表和dept表,数据如下: 一.plsql简介: 1.概念:procedural language,过程化sql ...

  4. Linux内核(10) - 内核中的链表

    早上上班坐地铁要排队,到了公司楼下等电梯要排队,中午吃饭要排队,下班了追求一个女孩子也要排队,甚至在网上下载个什么门的短片也要排队,每次看见人群排成一条长龙时,才真正意识到自己是龙的传人.那么下面咱们 ...

  5. Jquery定位插件,固定元素在页面某个位置,不随滚动条滚动

    代码: (function ($) { "use strict"; $.fn.pin = function (options) { var scrollY = 0, element ...

  6. scikit-learn 入门练习

    1. 一个简单的SVM实例: from sklearn import svm X = [[2, 0], [1, 1], [2,3]] y = [0, 0, 1] clf = svm.SVC(kerne ...

  7. Sql Server添加单引号

    " ' "(单引号)的运用:在sql server中,两个" ' "(单引号)在拼接字符串的情况下运用,就是表示拼接上了一个" ' "单引号 ...

  8. How to set JAVA environment variables in Linux or CentOS

    How to set JAVA environment variables JAVA_HOME and PATH in Linux After installing new java (jdk or ...

  9. C 指向指针的指针

    #include <stdio.h> int main() { char *cBooks[] = { "C程序设计语言", "C专家编程", &qu ...

  10. Extjs DateTime 日期时间选择控件 (非点击日期强制选择) 支持4.0以上

    Extjs的日期控件,仅仅能支持到日期选择,对时间的选择并不完好.而网上下载的控件,都是基于Ext.form.dateField 开发.在选中日期后自己主动选择,并隐藏此选择窗体. 在经过一番改造后, ...