c语言,定义一个函数intfun(inta,intb,intc)它的功能是若a,b,c能构成等边三

c语言,定义一个函数intfun(inta,intb,intc)它的功能是若a,b,c能构成等边三角形,返回3若能构成等腰三角形返回2,一般三角形返回0

#include <stdio.h>
int intfun(int a,int b,int c)
{
if(a+b<=c||a+c<=b||b+c<=a) /*判断是否能构成三角形*/
return -1; //不构成三角形
else
{

if((a==c||a==b||b==c )&& !(a==c && a==b)) /*判断是否为等腰三角形*/

return 2;
else if(a==c && a==b) /*判断是否为等边三角形*/
return 3;
else
return 0;

}
}

void main()
{
int a,b,c;
int t;
printf("Please Input a,b,c:");
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
t = intfun(a,b,c);
if(t == 3)
printf("构成等边三角形\n");
else
if(t == 2)
printf("构成等腰三角形\n");
else
if(t == 0)
printf("一般三角形\n");
else
printf("构不成三角形\n");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
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 0; //能构成一般三角形
else return -1; //不能构成三角形
}追问

追答

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;

}

本回答被网友采纳
第2个回答  2015-12-07
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; //不构成三角形
}追问

??

追答

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; //不构成三角形
}
应该是双等号,应该是同时满足条件,所以判断条件应该是并且而不是或者

追问

追答

你编译器有问题吧,我这个编译都没有任何问题

追问

不到啊,就是说这个逻辑好像有问题

追答

我刚才修改后的代码,你试过没?

追问

试了

追答

我这边执行完全没有问题,你编译器绝对有问题