输入三角形的3条边a,b,c,如果能构成一个三角形,则输出面积和周长。 保留两位小数,否则输出 这些边不能构成三角形。
我的程序是:
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,s,l,area;
scanf("%f %f %f",&a,&b,&c);
if((a+b>c)&&(b+c>a)&&(a+c>b))
{
l=a+b+c;
s=l/2;
area=sqrt(s*(s-a)(s-b)(s-c));
printf("面积为%.2f 周长为%.2f\n",area,l);
}
else printf("这些边不能构成三角形\n");
return o;
}
报错是:term does not evaluate to a function,在area=sqrt(s*(s-a)(s-b)(s-c));这行
怎么改~~
有朋友指出s*(s-a)(s-b)(s-c)括号之间的*木有打,加上了之后可以运行,但是输出的东西不对
比如 输入 3 4 5,输出的却是不能构成,这又是哪里出错了捏
ä¸ãç®æ³åæï¼
1ã è¾å ¥ä¸æ¡è¾¹ï¼a,b,cï¼
2ã å¤ææ¯å¦å¯ä»¥ææä¸è§å½¢ã å¯ä»¥å©ç¨ä¸è§å½¢ä¸¤è¾¹ä¹åå¿ ç¶å¤§äºç¬¬ä¸è¾¹çå®çè¿è¡å¤æï¼
3ã 对äºå¯ä»¥ææä¸è§å½¢çï¼ä¸è¾¹ç¸å æ±å¨é¿ï¼å¹¶å©ç¨æµ·ä¼¦å ¬å¼æ±é¢ç§¯ï¼
æµ·ä¼¦å ¬å¼ä¸º
å¼ä¸aï¼bï¼cåå«ä¸ºä¸è§å½¢ä¸è¾¹é¿ï¼p为åå¨é¿ï¼S为ä¸è§å½¢çé¢ç§¯ã
4ã è¾åºå¨é¿åé¢ç§¯ã
äºãåè代ç ï¼
#include<stdio.h>#include <math.h>
int main()
{
double a,b,c,C,S,p;
scanf("%lf%lf%lf",&a,&b,&c);//è¾å ¥ä¸æ¡è¾¹ã
if(a+b>c && b+c>a && a+c>b)//å¯ä»¥ææä¸è§å½¢ã
{
C=a+b+c;//计ç®å¨é¿ã
p=C/2;//计ç®åå¨é¿ã
S=sqrt(p*(p-a)*(p-b)*(p-c));//å¥ç¨æµ·ä¼¦å ¬å¼ï¼è®¡ç®é¢ç§¯ã
printf("å¨é¿=%lf\né¢ç§¯=%lf\n", C, S);//è¾åºç»æã
}
else
printf("æ æ³ææä¸è§å½¢\n");//ä¸è½ææä¸è§å½¢ï¼è¾åºæ示ã
return 0;
}
以下答案仅供参考:
输入三条边,a,b,c;
判断是否可以构成。 可以利用三角形两边之和必然大于第三边的定理进行判断;
对于可以构成三角形的,三边相加求周长,并利用求面积;
海伦公式为
式中a,b,c分别为三角形三边长,p为半周长,S为三角形的面积。
输出周长和面积
忘记了。。
可是加了之后 可以运行了,但是输入3 4 5,输出的是不能构成-,-
alleria@cxm:~/Codes/temp$ gcc test.c -o test -lm
alleria@cxm:~/Codes/temp$ ./test
3 4 5
面积为6.00 周长为12.00
无能为力,我不信还尝试跑了下,您的系统必须炸天
#include
int
main()
{
double
a,b,c,s,c,area;
a=3.67;
b=5.43;
c=6.21;
s=(a+b+c)/2;
c=a+b+c;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%f\tb=%f\tc=%f\n",a,b,c);
printf("area=%f\n",area);
printf("c=%f\n",c);
return
0;
}
a,b,c可以改,但两边之和大于第三边,两边之差小于第三边是不能丢的