C语言:编写程序,输入一个三角形的三条边,若能构成一个三角形,则输出相应提示信息并计算三角形面积。
3个回答
展开全部
#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;
}
展开全部
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;
}
{
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据两边之和大于第三边,两边只差小于第三边,就可以了
追问
请问能给一下代码吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询