#include
#include
int main()
{
unsigned a,b,c;
double s,P,A;
s=(a+b+c)/2;
a,b,c!=0;
scanf("%d,%d,%d",&a,&b,&c);
if((a+b>c)&&(a+c>b)&&(b+c>a))
{
A=sqrt(s*(s-a)*(s-b)*(s-c)),P=a+b+c;
printf("area = %02f; perimeter = %02f",A,P);
}
else
{
printf("These sides do not correspond to a valid triangle");
}
return 0;
}
本题要求编写程序,根据输入的三角形的三条边a、b、c,计算并输出面积和周长。注意:在一个三角形中, 任意两边之和大于第三边。三角形面积计算公式:area=√s(s−a)(s−b)(s−c),其中s=(a+b+c)/2。
输入格式:
输入为3个正整数,分别代表三角形的3条边a、b、c。
输出格式:
如果输入的边能构成一个三角形,则在一行内,按照
1.你先s=(a+b+c)/2; 运行得 s 然后才输入scanf("%d,%d,%d",&a,&b,&c); 这样得到的s值肯定不对;
2.浮点型跟整型要注意区分转换;
#include <stdio.h>
#include <math.h>
int main()
{
unsigned a,b,c;//三边均为为正整数
double s,P,A;
printf("Please enter 3 positive integers,e.g: 3,4,5\n");
scanf("%d,%d,%d",&a,&b,&c);
s = (double)(a+b+c)/2.0;
if((a+b>c)&&(a+c>b)&&(b+c>a))
{
A=sqrt(s*(s-a)*(s-b)*(s-c)),P=a+b+c;
printf("area = %0.2lf; perimeter = %0.2lf\n",A,P);
}
else
{
printf("These sides do not correspond to a valid triangle\n");
}
return 0;
}
unsigned a,b,c;
s=(a+b+c)/2;
这是整除啊
你应该用浮点数
float a,b,c
scanf里相应%d修改为%f