当前位置:首页 » 编程语言 » c语言多边形

c语言多边形

发布时间: 2023-05-11 18:21:06

1. c语言求多边形周长

#include<stdio.h>
#include<math.h>
typedefstructtagPoint
{
floatx,y;
}Point;
floatleg(Pointp1,Point缓斗p2)
{
returnsqrtf((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
floatcalc(const知态Point*p,intn)
{
floatsum=0.0f;
if(n<=1)return0.0f;
for(inti=0;i<n-1;i++)
{
sum扰猛磨+=leg(p[i],p[i+1]);
}
sum+=leg(p[n-1],p[0]);
returnsum;
}
intmain()
{
Pointp[10];
intn;
scanf("%d",&n);
for(inti=0;i<n;i++)
{
scanf("%f%f",&p[i].x,&p[i].y);
}
printf("%.2f",calc(p,n));
return0;
}

2. C语言 多边形面积

#include<stdio.h>

doublearea(doublea,doubleb,doublec,doubled,doublee,doublef);
voidmain()
{
intn;
doublex[100],y[100];
while(scanf("%d",&n)==1&&n>=3&&n<=100)
{
码嫌
inti;
doublesum=0;
for(i=0;i<n;i++)
{scanf("%lf%lf",x+i,y+i);
if(i>=2)
迟轿手sum+=area(x[0],y[0],x[i-1],y[i-1],x[i],y[i]);
}
printf("%.1lf "帆游,sum/2);
}

}

doublearea(doublea,doubleb,doublec,doubled,doublee,doublef)
{
returna*d+b*e+c*f-d*e-b*c-a*f;
}

3. C语言编程求多边形面积, (1)输入任意三点以上坐标,计算此多边形面

输入边数 n, 输入 多边形各顶郑滚配点 x,y 坐标,逆时针顺序 (保证 叉乘积 为 正)。
各顶点 x,y 坐标 减去 a[0][0]。以 a[0][0] 为主 计算各三角形面积并累加。

#include <stdio.h>
#include <stdlib.h>

main( )
{
int i,j,n;
double s=0;
double a[15][2];
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<2;j++)
scanf("%lf",&a[i][j]);
for(i=0;i<n;i++)
for(j=0;j<2;j++)
a[i][j]=a[i][j]-a[0][0];
for(i=1;i<n-1;i++)
{
s = s + 0.5*(a[i][0]*a[i+1][1]-a[i+1][0]*a[i][1]);
}
printf("%.2lf",s);
return 0;
}
追问
测试数据1 输出错误

错误输出:
1.00
期望输出:
5.00

测试数据2 输出错误

错误输出:
-10000.00
期望输出:
15000.00

测试数据3 输出错误

错误输出:
-1067.50
期望输出:
984.50

测试数据4 输出错误

测试数据5 输出错误

错误输出:
-1000.00
期望输出:
1100.00

都错了备模啊
追答
// 改正:a[i][j]=a[i][j]-a[0][j];
// 不是 -a[0][0], 是 a[0][j]

#include <stdio.h>
#include <stdlib.h>
main( ){int i,j,n;
double s=0;double a[15][2];
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<2;j++)
scanf("%lf",&a[i][j]);
for(i=1;i<n;i++)
for(j=0;j<2;j++)
a[i][j]=a[i][j]-a[0][j];
for(i=1;i<n-1;i++){
s = s + 0.5* ( a[i][0] *a[i+1][1] - a[i+1] [0] * a[i][1] );
}
printf("喊指%.2lf",s);
return 0;
}

4. 用c语言写计算多边形面积怎麽写啊,在线等待

对于凸对边升搜弊形,可以切分成吵族n-2个三角形,每个三角形的面积用如下公式求得:

求三漏闹角形面积:给出三角形的三个边长为a,b,c,求三角形的面积。
根据海伦公式来计算三角形的面积: S= ;Area=
1.输入的三角形三边长a,b,c要满足“任意两边长的和大于第三边长”。
2.按海伦公式计算:s=(a+b+c)/2;x=s*(s-a)*(s-b)*(s-c) 这时若x>=0,则求面积:area= ,并输出area的值。

C++代码如下:
#include <cmath>
#include <iostream>
using namespace std;
double point[1000000][2],A;
int m;
double det(double x1,double y1,double x2,double y2)
{
return x1*y2-x2*y1;
}

double area()
{
int i;
float temp=0;
for(i=0;i<m-1;i++)
{
temp+=det(point[i][0],point[i][1],point[i+1][0],point[i+1][1]);
}
temp+=det(point[i][0],point[i][1],point[0][0],point[0][1]);
return temp/2;
}
int main()
{
int i;
while (scanf("%d",&m)!=EOF)
{
if (m==0)break;
for (i=0;i<m;i++)
{
cin>>point[i][0]>>point[i][1];
}
printf("%.1f\n",area());
}
return 0;
}

5. C语言实现多边形填充

/*直角三角形,输入行数,输出*/
#include <stdio.h>
void main()/*如果TC编译不通过,则去掉void*/
{
int n;
scanf("%d",&n);
for (int i = 1;i <= n;i++)
{
for (int j = 0;j < i;j++)
printf("*");
printf("\n");
}
}
/*等腰三角形,输入行数,输出*/
#include <stdio.h>
void main()/*如果TC编译不通过,则去掉void*/
{
int n;
scanf("%d",&n);
for (int i = 1;i <= n;i++)
{
for (int k = 1;k <= n-i;k++)
printf(" ");
for (int j = 0;j < 2*i-1;j++)
printf("*");
printf("\n");
}
}
以上在VS2005上编译通过

热点内容
ftp命令使用 发布:2025-07-18 18:13:05 浏览:44
办税密码是什么 发布:2025-07-18 18:12:32 浏览:487
linuxftp文件下载 发布:2025-07-18 18:12:30 浏览:941
互联网网站服务器搭建 发布:2025-07-18 18:01:06 浏览:478
安卓手机怎么辫真伪 发布:2025-07-18 17:13:14 浏览:186
java后台json 发布:2025-07-18 17:12:21 浏览:680
手机游戏配置主要看哪些 发布:2025-07-18 17:00:47 浏览:148
微课源码 发布:2025-07-18 16:34:44 浏览:1001
压缩长抱枕 发布:2025-07-18 16:13:38 浏览:505
如何使用wifi热点配置网络 发布:2025-07-18 16:06:25 浏览:970