C语言:输入四个整数,看是否位四边形,进一步判断正方形,长方形。

#include <stdio.h>
void main()
{
int a,b,c,d;
printf("Please Input a,b,c,d:");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
scanf("%d",&d);
if(a+b+c<=d||a+c+d<=b||b+c+d<=a||a+b+d<=c)
printf("非四边形");
else
{
if(a==b==c==d)
printf("正方形");
else
{if(a==c&&b==d&&a!=b||a==b&&c==d&&a!=c||b==c&&a==d&&b!=a)
printf("长方形");
else
{printf("不规则四边形");}}
}
getch();
}

输入4个1是正方形,但其他整数就不是了,求解

第1个回答  2015-12-10
if(a==b==c==d)
这个条件先是计算a==b,如果相等结果就为1,然后计算1==c,除非c=1,不然该结果始终为0。
你要改成if(a==b&&b==c&&c==d)
第2个回答  2015-12-10
#include <stdio.h>
void main()
{
int a,b,c,d;
printf("Please Input a,b,c,d:");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
scanf("%d",&d);
if(a+b+c<=d||a+c+d<=b||b+c+d<=a||a+b+d<=c)
printf("非四边形");
else
{
if(a==b&&b==c&&c==d)//这里修改成这样
printf("正方形");
else
{if(a==c&&b==d&&a!=b||a==b&&c==d&&a!=c||b==c&&a==d&&b!=a)
printf("长方形");
else
{printf("不规则四边形");}}
}
getch();
}
第3个回答  推荐于2018-04-05
1 请将 if(a==b==c==d)改为

if((a==b)&&(b==c)&&(c==d))本回答被提问者和网友采纳
第4个回答  2015-12-10
逻辑等于不是赋值号,不能“连等”。写成if(a==b && a==c && a==d)