用C语言键盘输入三个整数,判断此三数能否作为三角形的三个边,若能,进一步判断能构成什么三角形?

作者&投稿:聂香 (若有异议请与网页底部的电邮联系)
在C语言中,输入三个数,判断他们能否构成三角形,如果可以,能构成何种三角形~

就是单纯的条件语句,我没写近似值的比较,你想输入精确的小数比较(比如满足1:2:√3),自己写个取近似值的函数再传值好了。

#includedouble jd(double a,double b,double c);//通过3个角度判断 返回0:不是三角形 返回1:是三角double bc(double a,double b,double c);//通过3个变长判断 返回0:不是三角形 返回1:是三角int main(){ double a,b,c; while(1) { printf("输入3个数:"); scanf("%lf%lf%lf",&a,&b,&c); if(a>0 && a0 && b0 && c180 && a180 && b180 && b<360) c=360-c; if(a+b+c!=180) { printf("不能构成三角形
"); return 0; } if(a==b && b==c) printf("可以构成等边三角形
"); else if((a==90||b==90||c==90) && (a==b || b==c ||a==c)) printf("可以构成等腰直角三角形
"); else if(a==b || b==c ||a==c) printf("可以构成等腰三角形
"); else if(a==90||b==90||c==90) printf("可以构成直角三角形
"); else printf("可以构成普通三角形
"); return 1;}

&&、||运算符使用错误,代码为:
#include
int main()
{
float a,b,c;
printf("请输入边长:
");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>=c || a+c>=b || b+c>=a)
{ if (a==b&&a==c&&b==c)
printf("等边三角形
");
else if ((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))
printf("直角三角形
");
else if (a==b||a==c||b==c )
printf("等腰三角形
"); }
else
printf("普通三角形
");
return 0;
}

扩展资料:
&&、|| 和 !的优先级为:
! > && > ||
! 运算符比许多 C++ 运算符具有更高的优先级。因此,为了避免错误,应始终将其操作数括在括号中,除非打算将其应用于没有其他操作符的变量或简单表达式。例如,来看以下表达式:
! (x > 2)! x > 2
第一个表达式将 !运算符应用于表达式 x>2,它是在问“x 是否不大于 2”,然而,第二个表达式是将 !运算符应用于到 x。它是在问“x 的逻辑是否大于 2”。
假设 x 被设置为 5,由于 5 是非零值,所以被认为是 true,而 !运算符会将其反转为 false,即为 0,然后,> 运算符将确定 0 是否大于 2。为了避免这种错误,始终使用括号是明智的。
参考资料:
百度百科-逻辑运算符

#include<stdio.h>
void main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>0&&b>0&&c>0)
{
if(a+b>c&&a-b<c)
{
printf("这个是三角形\n");
if(a>b)
{t=a; a=b; b=t;}
if(b>c)
{t=b; b=c; c=t;}/*把最长的一条边换到c边上,后面的就比较好比较*/
if(a*a+b*b==c*c)
{
if(a==b) printf("是等腰直角三角形\n");
else printf("是直角三角形\n");
}
if(a==b)
{
if(b==c) printf("是等边三角形\n");
else printf("是等腰三角形\n");
}
}
else printf("不能组成三角形\n");
}
else printf("不能组成三角形\n");
}

#include "stdio.h"

int main()
{
  int a,b,c;

  printf("Please enter the three numbers(a,b,c):
");
  scanf("%d,%d,%d",&a,&b,&c);

  int t;
  if(a>b){
    t=a;a=b;b=t;
  }
  if(b>c){
    t=b;b=c;c=t;
  }
  if(a>b){
    t=a;a=b;b=t;
  }
    
  if((a>0)&(b>0)&(c>0)){
    if(a+b>c){
      printf("The three number can make up a trianle.");
      if((a*a+b*b)==c*c)
        printf("It's a right trianle.
");
      else if((a*a+b*b)>c*c)
        printf("It's a acute trianle.
");
      else
        printf("It's a obtuse angled triangle.
");
    }else{
      printf("Error:The three number can't make up a triangle.
");
    }
  }else{
    printf("Error:The length should be bigger than zero.
");
  }

  return 0;
}


#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c;
printf("Please strike three numbers as a triangle's sides:");
scanf("%d,%d,%d",&a,&b,&c);
printf("Can a triangle can be formed with the given lengths? ");
if((a+b>c)&&(a+c>b)&&(b+c>a))
printf("Yes\n");
else
{
printf("No\n");
return 1;
}
printf("Is the triangle equilateral? ");
if(a==b&&b==c)
{
printf("Yes\n");
return 0;
}
else
printf("No\n");
printf("If the triangle is not equilateral, it is isosceles? ");
if(a==b||a==c||b==c)
printf("Yes\n");
else
printf("No\n");
printf("Is the triangle right-angled? ");
if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
printf("Yes\n");
else
printf("No\n");
return 0;
}

我是用控制台做得
static void Main(string[] args)
{
double a = double.Parse(Console.ReadLine());
double b = double.Parse(Console.ReadLine());
double c = double.Parse(Console.ReadLine());
if (a * a + b * b == c * c)
{
Console.WriteLine("这个是三角形");
}
else if (a * a + c * c == b * b)
{
Console.WriteLine("这个是三角形");
}
else if (c * c + b * b == a * a)
{
Console.WriteLine("这个是三角形");
}
else { Console.WriteLine("这不是三角形"); }
}

有三个整数A,B,C,由键盘输入,输出其中的最大数。用C语言如何编程_百度...
答:include <stdio.h> int main() { int a,b,c;printf("请输入三个整数(用逗号隔开):");scanf("%d,%d,%d",&a,&b,&c);a = (a > b) ? a : b;a = (a > c) ? a : c;printf("最大值是:%d\n\n",a);return 0;} ...

...之和是否为3的倍数,若是输出yes,否则输出no(c语言)?
答:再将3位数和与3求余,余为0就是3的倍数。下面用方法二写:include <stdio.h> int main(){ int num,g,s,b;printf("请输入一个三位数:"),scanf("%d",&num);g=num%10,s=(num%100)/10,b=num/100;if((g+s+b)%3==0) printf("yes\n");else printf("No\n");return 0;} ...

求大神帮忙啊~C语言编程从键盘输入三个整数存入数组中,操作指针使数组...
答:首先,输入三个数,你的数组开才开了2,数组开小了!a[3]其次,scanf ("%d", &a[i]);这里要使用取地址符号才能进行输入 再次,你加的else ;这些语句都没有用,直接删除 include<stdio.h>int main(){int *p,a[3],temp,i;p=a;printf("请输入三个数字");for(i=0;i<=2;i++)scanf...

C++程序设计:从键盘上输入三个整数,求出其中最大值与最小值,用条件运算...
答:参考代码如下:include <iostream> using namespace std;int main(){ int a1, a2, a3;cout << "请分别输入三个整数:" << endl;cout << "a1 = ";cin >> a1;cout << "a2 = ";cin >> a2;cout << "a3 = ";cin >> a3;cout << "利用条件表达式找出三个数的最小值为:";cout ...

C语言 编写一程序,实现三个整数a,b,c由键盘输入,输出其中最大的数。
答:include<stdio.h> int main(){ int a,b,c,max;scanf("%d%d%d",&a,&b,&c);max=a>b?a:b;max=max>c?max:c;printf("%d\n",max);return 0;}

用c语言编程:从键盘输入三个不等的整数,输出最大值
答:include<stdio.h>int main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);printf("%d",(a>b?a:b)>c?(a>b?a:b):c);return 0;}

C语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出
答:具体操作方法如下:include<stdio.h> int main(void){int a,b,c,t;printf("请输入三个数");scanf("%d%d%d",&a,&b,&c);if(a<b){t=a;a=b;b=t;} if(b<c){t=b;b=c;c=t;} if(a

用c语言编程:从键盘输入三个整数,以逗号相隔。输出其中最大的数。请 ...
答:int main() //这是主函数,c语言的工程都是由大小的函数组成的,主函数是系统运行的第 { //一个函数 int a,b,c;int max;printf("请输入三个数,逗号区分各数:");sscanf("%d,%d,%d", &a,&b,&c); //格式化输入,记得abc 要取地址& max = b;if(a > b){ //a...

用C语言编写程序从键盘输入三个数,求三个数的和并输出
答:参加下, 代码比较简短 include <stdio.h> int main(void){ int a=0,b=0,c=0;scanf("%d %d %d", &a,&b,&c);printf("a+b+c=%d\n",a+b+c);return 0;}

从键盘上输入三个整数,将它们由小到大输出(c语言)?
答:include <stdio.h> int main(){ int a,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a>b){ t=a;a=b;b=t;} if(b>c){ t=c;c=b;b=t;} if(a>b){ t=a;a=b;b=t;} printf("%d %d %d",a,b,c);return 0;}