作业帮 > 综合 > 作业

有一个判断三角形形状的程序不知道问题出在哪了,在下大一新生,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/15 01:23:57
有一个判断三角形形状的程序不知道问题出在哪了,在下大一新生,
#include "stdio.h"
void main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
if(a==b&&b==c&&a==c) printf("equilateral triangle\n");
else if(a==b!=c||a==c!=b||b==c!=a) printf("isoceles triangle\n");
else printf("triangle\n");
}
else printf("non-triangle\n");
}
程序语句没有错 就是比如说输入4 5 6的时候输出的是isoceles triangle 很不解
问题在这句:
else if(a==b!=c||a==c!=b||b==c!=a) printf("isoceles triangle\n");
a==b!=c 意思是首先判断 a==b 吗? 不等于,于是 (a==b) 的值是0, 然后 0!=c 是成立的.所以 给出等腰.
a==b!=c 可以改写为 (a==b && b!=c)
句中,三个都有同样错误,都得改