首页 > 情感

我改编了一点点,就不能正常计算了,我是新手,一直没看出原因,求大佬帮忙

更新时间2019-01-26 18:55:23

#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;

上一篇:男朋友莫名其妙不理我

下一篇:老师表扬我,我回了老师一句“会的”这应该没事吧