1、 给出三角形的3边a、b、c,求三角形的面积。(应选判断a、b、c三边是否能构成一个三角形)。
看看这个吧。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
float a,b,c;
float s,area;
printf("input the length of three edges of triangle: ");
scanf("%f%f%f",&a,&b,&c);
if (a<0||b<0||c<0)
{
printf("no memory!\n");
exit(1);
}
s=(a+b+c)/2;
s=s*(s-a)*(s-b)*(s-c);
if (s<0)
{
printf("no memory!\n");
exit(-1);
}
area=(float)sqrt(s);
printf("area=%.2f\n",area);
}
#include <stdio.h>
#include <conio.h>
#include <math.h>
/*检查是否能构成三角形*/
int check(double,double,double);
int main(void)
{
double a,b,c;
double half;
clrscr();
printf("请输入三角形的三条边的长度:\n");
scanf("%lf %lf %lf",&a,&b,&c);
if(!check(a,b,c))
{
printf("输入错误!\n");
printf("按任意键退出...");
getch();
exit(0);
}
/*已知三边求解面积公式:
half=(a+b+c)/2;
S=sprt(half*(half-a)*(half-b)*(half-c));*/
half=(a+b+c)/2;
printf("三角形的面积为:\n");
printf("%lf",sqrt(half*(half-a)*(half-b)*(half-c)));
getch();
}
int check(double a,double b,double c)
{
if((a>0 && b>0 && c>0)
&& (a+b>c)
&& (a+c>b)
&& (b+c>a)
)
return 1;
else
return 0;
}
[此贴子已经被作者于2007-3-15 17:02:48编辑过]
看看这个吧。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
float a,b,c;
float s,area;
printf("input the length of three edges of triangle: ");
scanf("%f%f%f",&a,&b,&c);
if (a<0||b<0||c<0)
{
printf("no memory!\n");
exit(1);
}
s=(a+b+c)/2;
s=s*(s-a)*(s-b)*(s-c);
if (s<0)
{
printf("no memory!\n");
exit(-1);
}
area=(float)sqrt(s);
printf("area=%.2f\n",area);
}
1,2,3