编程题:编写程序输入三角形的3条边长,计算并输出三角形的面积。

如题所述

一、程序分析

三角形面积海伦公式:√[ p ( p - a ) ( p - b ) ( p - c ) ] 。其中 p = (a + b + c) / 2 。a、b、c分别是三角形的三边长。 

二、根据三角形面积计算公式用if语句编写程序如下:

#include "stdio.h"

#include "math.h"

int main(void)

{

float a = 0, b = 0, c = 0, p = 0;

float area = 0;

printf("Please input three sides of triangle:");

scanf_s("%f %f %f", &a, &b, &c);

if((a + b) > c && (a + c) > b && (b + c) > a)

{

p = (a + b + c) / 2;

area = sqrt(p * (p - a) * (p - b) * (p - c));

}

else

printf("Triangle does not exist!\n");

printf("The area of triangle is:%f\n", area);

return 0;

扩展资料:

还可以使用switch语句计算三角形的面积,编写程序如下

#include "stdio.h"

#include "math.h"

int main(void)

{

float a = 0, b = 0, c = 0;

float p = 0;

printf("Please input three sides of triangle:");

scanf_s("%f %f %f", &a, &b, &c);

switch (a + b > c  &&  a + c > b && b + c > a)

{

case 0:printf("Triangle does not exist!\n"); break;

case 1:

p = (a + b + c)*0.5;

printf("The area of triangle is:%f\n", sqrt(p * (p - a) * (p - b) * (p - c)));

break;

}

return 0;

}

参考资料:百度百科-switch

参考资料:百度百科-结束条件语句

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-08-31

#include

#include

int main()

{

double a,b,c,p,s;


printf("请输入a,b,c三个数:");

scanf("%lf%lf%lf",&a,&b,&c);

p=(1/2)*(a+b+c);

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf("三角形的面积为:%.3f\n",s);

return 0;

}

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

本回答被网友采纳
第2个回答  2011-05-04
Fire历史 的程序有写问题 我稍微改了下

#include <stdio.h>
#include <math.h>
void main(void)
{
float a,b,c,s,t,area;
char again = 'n';
index:
do{
printf("请输入三角形的三边长,以','为间隔,如:3,4,5\n");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b <=c)
{
printf("输入错误,请再输入!");
goto index;
}
if(a+c <=b)
{
printf("输入错误,请再输入!");
goto index;
}
if(b+c <=a)
{
printf("输入错误,请再输入!");
goto index;
}
s=(a+b+c)/2;
t=s*(s-a)*( s-b)*(s-c);
area=sqrt(t);
printf("面积 S=%3.2f\n",area);//保留两位小数 一堆小数太难看
printf("周长 C=%3.2f\n",a+b+c);
printf("想再来一遍吗? n/y ");
fflush(stdin);
again = getchar();
}while( again =='y'||again == 'Y');
}
另外,虚机团上产品团购,超级便宜
第3个回答  2011-04-29
#include<stdio.h>
#include<math.h>
void main()
{
float a ,b,c,area,p;
printf("请输入三角形的三边长:a,b,c\n");
scanf("%f,%f,%f",&a,&b,&c);
p=(a+b+c)/2;
area=sqrt(p*(p-a)*(p-b)*(p-c) );
printf("%f\n",area);
}
第4个回答  2011-04-29
#include <stdio.h>
main()
{float a,b,c;
float p,s;
scanf("%f%f%f",&a,&b,&c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-c)*(p-b));
printf("%lf\n",s);
}追问

这个程序有问题

追答

#include
#include //新加的头文件!
void main()
{float a,b,c;
float p,s;
scanf("%f%f%f",&a,&b,&c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-c)*(p-b));
printf("%lf\n",s);
}

本回答被提问者采纳
相似回答