C语言:编写程序,输入一个三角形的三条边,若能构成一个三角形,则输出相应提示信息并计算三角形面积。

 我来答
碧海风云

2019-03-29 · 碧海风的秘密小据点!
碧海风云
采纳数:909 获赞数:10281

向TA提问 私信TA
展开全部
#include <stdio.h>
#include <math.h>
#include <conio.h>

/* 海伦公式/秦九韶三斜求积 */
/* 已知三角形三边长,返回三角形面积 */
float heron (float a, float b, float c) {
float A, s; /* A: 面积; s: 半周长 */
s = (a+b+c) / 2;
A = sqrt (s * (s-a) * (s-b) * (s-c));
return A;
}

/* 三角形三边长判定 */
/* 任意两边大于第三边,可构成三角形,返回1,否则返回0 */
int edge (float a, float b, float c) {
return (a+b>c && a+c>b && b+c>a);
}

int main (void) {
float a, b, c; /* 三角形三边长 */

printf ("输入三角形三边长:");
scanf ("%f%f%f", &a, &b, &c);
putchar ('\n');

if (edge (a, b, c)) /* 任意两边和大于第三边 */
printf ("三角形面积:%.2f\n", heron (a, b, c));
else
printf ("三边长不能构成三角形!\n");

getch (); /*屏幕暂留*/
return 0;
}

tommrry
2019-03-29 · TA获得超过133个赞
知道小有建树答主
回答量:209
采纳率:33%
帮助的人:72.5万
展开全部
double area(int tria, int trib, int tric)
{
double tril, area,trila;
tril = double((tria + trib + tric) / 2);
area = sqrt(tril * (tril - double(tria))*(tril - double(trib))*(tril - double(tric)));
return area;
}
int main(int argc, char** argv) {
int triabc[3], temp;
// double area;
printf("请输入三个边长:");
scanf("%d,%d,%d", &triabc[0], &triabc[1], &triabc[2]);
for (int j = 0;j < 3;j++) {
// printf("试试:%d",triabc[j]);
for (int i = 0;i < 2 - j;i++)
{
if (triabc[i] > triabc[i + 1])
{
temp = triabc[i];
triabc[i] = triabc[i + 1];
triabc[i + 1] = temp;
}
}
printf("试试:%d", triabc[j]);
}
if ((triabc[0] + triabc[1]) > triabc[2] && (triabc[0] + triabc[2]) > triabc[1] && (triabc[1] + triabc[2] > triabc[0]) && (triabc[2] - triabc[0]) < triabc[1])
printf("面积是:%.2f", area(triabc[0], triabc[1], triabc[2]));
else
printf("输入错误!");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
韵250
2019-03-29 · TA获得超过273个赞
知道小有建树答主
回答量:781
采纳率:46%
帮助的人:167万
展开全部
根据两边之和大于第三边,两边只差小于第三边,就可以了
追问
请问能给一下代码吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式