我改编了一点点,就不能正常计算了,我是新手,一直没看出原因,求大佬帮忙
#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,area;
char s;
printf("请输入三角形的三条边:");
scanf("%f %f %f %c",&a,&b,&c,&s);
c=(float)(s='s')?sqrt(c):c;
if(a+b>c&&a+c>b&&b+c>a)
{
s=(a+b+c)/2;
printf("三角形的面积为:%f ",area=(float)sqrt(s*(s-a)*(s-b)*(s-c)));
if(a==b&&a==c)
printf("等边三角形 ");
else if(a==b&&sqrt(a*a+b*b)==c||b*b+c*c==a*a&&b==c||a*a+c*c==b*b&&a==c)
printf("等腰直角三角形 ");
else if(a==b||b==c||a==c)
printf("等腰三角形 ");
else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
printf("直角三角形 ");
else
printf("普通三角形 ");
}
else printf("不是三角形 ");
return 0;
}
其中c=(float)(s='s')?sqrt(c):c;与
else if(a==b&&sqrt(a*a+b*b)==c||b*b+c*c==a*a&&b==c||a*a+c*c==b*b&&a==c)
printf("等腰直角三角形 ");
是我改编的部分。
至少有一个错,C/C++的相等比较不是=,而是==
所以你的
c=(float)(s='s')?sqrt(c):c;
应该是
c=(float)(s=='s')?sqrt(c):c;
上一篇:男朋友莫名其妙不理我