首先对三角形的三边关系有基本的了解;
基本:三角形任意两边和大于第三边,任意两边差小于第三边。
1、直角三角形:存在有两边的平方和等于第三边的平方。(a2=b2+c2)
2、钝角三角形:存在最长边的平方大于其他两边的平方和。(a2>b2+c2)
3、锐角三角形:存在任意两边的平方和大于第三边的平方。(a2+b2>c2)
4、等边三角形:三边相等。(a=b=c)
接着对基本的逻辑运算符的了解;
1、&& 逻辑与(AND):a&&b(如果a和b都是真,则结果为真,否则为假)
2、|| 逻辑或(OR):a||b(如果a和b有一个以上为真,则结果为真,二者为假时,都为假)
3、!逻辑非(NOT):!a(如果a为假,则!a为真,如果a为真,则!a为假)
最后是对if语句实现选择结构的了解;
简单来讲,if()括号里面是关系表达式、逻辑表达式和数值表达式,如果括和里面判断为真,则运算下去,如果判断为假则去到else,运算下去。
这里用的是if语句的第三种形式(嵌套)
三角形的c语言代码;
直角三角形;
a*a==b*b+c*c||b*b==a*a+c*c||c*c==a*a+b*b //用||来判断,因为a,b,c直接输入,不判断那个是斜边,则满足其中一个即可为真。(小心不要用到‘=’,这不是赋值,是等同于“==”)
钝角三角形;
a*a>b*b+c*c||b*b>a*a+c*c||c*c>a*a+b*b //一样用||来判断,满足其中一个即可为真。
锐角三角形;
a*a<b*b+c*c&&b*b<a*a+c*c&&c*c<a*a+b*b&&a!=b||a!=c||b!=c //用&&来判断,因为为任意两边的平方和都大于第三边的平方和,所以要同时成立。接着等边三角形也属于锐角三角形,为了区分,让其三边不相等(a!=b||a!=c||b!=c)。
等边三角形;
a==b&&a==c //三边相等,注意!!!不能写成a==b==c,这样是因为==从左到右运算,也就是先a==b判断得到1或者0,这1或者0就会与c判断(1或者0==c),这两个是不等的,为假,则会去到else(最后一个else可有可无,因为不会来到这)
最后输入时,注意!!!5,5,5 和 5,5,5输入是不同的,“scanf”是要对应符号的,否则是运算不了的。
#include<stdio.h>
int main()
{
int a, b, c;
scanf("%d,%d,%d", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a)
{
if (a * a == b * b + c * c || b * b == a * a + c * c || c * c == a * a + b * b)
printf("直角三角形");
else if (a * a > b * b + c * c || b * b > a * a + c * c || c * c > a * a + b * b)
printf("钝角三角形");
else if (a * a < b * b + c * c && b * b < a * a + c * c && c * c < a * a + b * b&&a!=b||a!=c||b!=c)
printf("锐角三角形");
else if (a == b && a == c)
printf("等边三角形");
else
printf("不存在");
}
else
printf("三角形不存在");
}
小白一个,如果有错希望指出来,谢谢!