當前位置:首頁 » 編程語言 » c語言計算四邊形的面積怎麼算
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言計算四邊形的面積怎麼算

發布時間: 2023-04-05 06:03:29

c語言:根據四邊形坐標計算面積

首先判斷12點和34點橫豎坐標的差值是否相等,相等則構成四邊形。然後可以計算一半的面積,可以用求三角形面積的方法做。得到結果乘二即可。

㈡ c語言 四邊形面積

s1=a+b+e;
s2=c+d+e; 中漏高銷掉了除以2,
改為
s1=(a+b+e)/2;
s2=(c+d+e)/2;
下面的程序就對了。
#include "math.h"
#include "stdio.h"
main()
{
int i;
float a,b,c,d,e,s1,s2,h1,h2,area;
float m[2],n[2],p[2],q[2];
printf("shu ru zuo biao:");
for(i=0;i<2;i++)
scanf("殲念困%f",&m[i]);
for(i=0;i<2;i++)
scanf("%f"氏念,&n[i]);
for(i=0;i<2;i++)
scanf("%f",&p[i]);
for(i=0;i<2;i++)
scanf("%f",&q[i]);
a=sqrt(pow(m[0]-n[0],2)+pow(m[1]-n[1],2));
b=sqrt(pow(p[0]-n[0],2)+pow(p[1]-n[1],2));
c=sqrt(pow(p[0]-q[0],2)+pow(p[1]-q[1],2));
d=sqrt(pow(m[0]-q[0],2)+pow(m[1]-q[1],2));
e=sqrt(pow(m[0]-p[0],2)+pow(m[1]-p[1],2));
s1=a+b+e;
s2=c+d+e;
h1=sqrt(s1*(s1-a)*(s1-b)*(s1-e));
h2=sqrt(s2*(s2-c)*(s2-d)*(s2-e));
area=h1+h2;
printf("%f",area);
getch( );
}

㈢ c語言求任意四邊形面積附上函數流程圖

你把四個頂點坐標弄下來.
A(x1,y1)
B(x2,y2)
C(x3,y3)
D(x4,y4)
將四邊形分成兩個三凳如斗角形橡旅ABD和BCD
然後由矢量代數知識.三角形面積等於兩矢量的叉乘*0.5

面積棗磨 = fabs(0.5*(x1*(y2-y4)+x2*(y4-y1)+x4*(y1-y2)))
+ fabs(0.5*(x2*(y3-y4)+x3*(y4-y2)+x4*(y2-y3)));

㈣ 用c語言編寫程序求四邊形的面積

現在的人那...寫道程序才給那麼點分..哎

㈤ C語言 定義計算四邊形面積的函數

樓主,你把公式寫錯了,正確的應該是S = sqrt((s-a)*(s-b)*(s-c)*(s-d) - a*b*c*d*cosα*cosα);
代碼我寫好了,通過測試,結果正確

#include <stdio.h>
#include <math.h>
#define PI 3.1415926

double area(double a, double b, double c, double d, double theta)
{
double S,s;
s = (a + b + c + d) / 2;
S = sqrt((s - a) * (s - b) * (s - c) * (s - d)
- a * b * c * d * pow(cos(PI * theta / 360),2));
return S;
}

int main()
{
double a, b, c, d, theta, s;
printf("請依次輸入四條邊和theta的值:");
scanf("%lf %lf %lf %lf %lf", &a, &b, &c, &d, &theta);
s = (a + b + c + d) / 2;
while((s - a) * (s - b) * (s - c) * (s - d)
- a * b * c * d * pow(cos(PI * theta / 360),2) < 0)
{
printf("invalid input!\n");
printf("請重新輸入:");
scanf("%lf %lf %lf %lf %lf", &a, &b, &c, &d, &theta);
}
printf("四邊形面積為: %.4lf\n", area(a, b, c, d, theta));
return 0;
}

㈥ C語言編程題 題目:任意輸入4個點,求圍成四邊形的面積

我測試過了,四點一線,凹四邊形,四邊形,有兩個點共點,都可以,這里使用一條知道N邊形N個頂點坐標求N邊形的面積的公式,這些情況其實已經虛沖察可以不考慮,呵呵,自動求

凹四邊形情況:

#include"stdio.h"

#include"math.h"

voidmain()

{

doublex[4],y[4];

for(inti=0;i<4;i++)

{

scanf("%lf%lf",&x[i],&y[i]);

}

doublemianji=0.0;

for(intii差茄=1;判洞ii<4;ii++)

{

mianji+=(x[ii-1]*y[ii]-x[ii]*y[ii-1]);

}

mianji+=x[3]*y[0]-x[0]*y[3];

mianji=fabs(0.5*mianji);

printf("%lf ",mianji);

}

㈦ 求平行四邊形面積演算法(已知4點坐標,討論情況)用c語言編程(請付流程圖)

平行四邊形的面積可以分成兩個三角形來計算,
假設這個平行四邊形是ABCD
一個三角形的面積的演算法是
那麼可以用AB向量也AD向量的叉積來做

#include<math.h>
#include <stdio.h>
struct
{
double x,y;
}p[4],ab,ad;
void main()
{
int i;
double s;
for(i=0;i<4;i++)scanf("%lf%lf",&p[i].x,&p[i].y);
ab.x=p[1].x-p[0].x;
ab.y=p[1].y-p[0].y;
ad.x=p[3].x-p[0].x;
ad.y=p[3].y-p[0].y;
s=ab.x*ad.y-ab.y*ad.x;
printf("%lf\n",fabs(s));
}

㈧ C語言求任意四邊形的面積

#include <stdio.h>
#include <math.h>

int main(void)
{
float a,b,c,d,af,s,S;

scanf("%f%f%f%f%f",&a,&b,&c,&d,&af);

s=(a+b+c+d)/2.0;
af=cos(2.0*af/180.0);
S=sqrt((s-a)*(s-b)*(s-c)*(s-d)-a*b*c*d*af);

if(S<0)
printf("Invalid input\n");
else
printf("%.4f\n",S);

return 0;
}

函數使用錯誤,cos參數應該為弧度。。

㈨ 用c語言編寫程序求四邊形的面積

#include<stdio.h>
void
main()
{
printf
("請輸入四點坐標:");
int
a[4][2];
for(int
i=0;i<4;i++)
{
scanf("%d
%d",a[i][0],a[i][1]);
//輸入坐標值
}
if(a[0][0]=[1][0]=[2][0]=[3][0]
||a[0][1]=[1][1]=[2][1]=[3][1]
)
printf("這不是一個四邊形");
//計算面積
//分成兩個三角形的面積計算
,應該很簡單計算三角形面積
}
自己做吧,我只能做到這了。
練習還是要自己嘗試的

㈩ c語言 算平行四邊形面積

我只能判斷能不能組成平行四邊形,面積沒做出來,希望對你有用:
#include <stdio.h>

typedef struct node {
int x;
int y;
} Node;

int main(void)
{
Node n[4];
int i;

for (i = 0; i < 4; i++) {
printf("Enter the node %d->x\tnode %d->y:\n", i + 1, i + 1);
scanf("%d %d", &n[i].x, &n[i].y);
}
if (((n[3].x - n[2].x) == (n[1].x - n[0].x)) && ((n[3].y - n[2].y) == (n[1].y - n[0].y))) {
printf("mianji: %d\n", ((n[1].x - n[0].x) * n[2].y));
} else if (((n[3].x - n[1].x) == (n[2].x - n[0].x)) && ((n[3].y - n[1].y) == (n[2].y - n[0].y))) {
printf("mianji: %d\n", ((n[1].x - n[0].x) * n[2].y));
} else if (((n[3].x - n[0].x) == (n[1].x - n[2].x)) && ((n[3].y - n[0].y) == (n[1].y - n[2].y))) {
printf("mianji: ****\n");
} else {
printf("cannot\n");
}

return 0;
}