c语言,定义一个函数intfun(inta,intb,intc)它的功能是若a,b,c能构成等边三角形,返回3若能构成等腰三角形返回2,一般三角形返回0
c语言,定义一个函数intfun(inta,intb,intc)
这不是一个完整的程序,只是一个函数。
下面是完整的程序:
#include "stdio.h"
int fun(int a,int b,int c)
{if(a==b&&b==c)return 3; //能构成等边三角形
else if(a==b||a==c||b==c)return 2; //能构成等腰三角形
else if(a+b>c&&a+c>b&&b+c>a)return 1; //能构成一般三角形
else return -1; //不能构成三角形
}
int main()
{int a,b,c,s;
scanf("%d%d%d",&a,&b,&c);
s=fun(a,b,c);
switch(s)
{case 3:printf("能构成等边三角形\n");break;
case 2:printf("能构成等腰三角形\n");break;
case 1:printf("能构成一般三角形\n");break;
case -1:printf("不能构成三角形\n");
}
return 0;
}
??
追答int fun(int a,int b,int c){
if(a+b>c&&a+c>b&&b+c>a){
if((a==b&&a!=c&&b!=c)||(a==c&&a!=b&&b!=c)||(b==c&&a!=c&&a!=b)){//构成三角形的要件是:三角形任意两边之和大于第三边
return 2; //构成等腰三角形
}else if(a==b&&a==c&&b==c){
return 3; //构成等边三角形
}else{
return 0; //构成一般的三角形
}
}
return 1; //不构成三角形
}
应该是双等号,应该是同时满足条件,所以判断条件应该是并且而不是或者
你编译器有问题吧,我这个编译都没有任何问题
追问不到啊,就是说这个逻辑好像有问题
追答我刚才修改后的代码,你试过没?
追问试了
追答我这边执行完全没有问题,你编译器绝对有问题