㈠ c語言如何判斷abc能否構成三角形
#include <stdio.h>
int main()
{
float a,b,c;
printf("請輸入三邊的邊長:");
scanf("%f%f%f",&a,&b,&c);
if(a>0 && b>0 &&c>0)
{
if(a+b>c && a+c>b &&b+c>a)
{
printf("(%.2f,%.2f,%.2f)能圍成三角形\n",a,b,c);
}
else
{
printf("(%.2f,%2.2f,%.2f)不能圍成三角形\n",a,b,c);
}
}
return 0;
}
判斷三角形類型。輸入三角形的三條邊a,b,c,判斷它們能否構成三角形。若能構成三角形,指出是何種三角形(等腰三角形、等邊三角形、直角三角形、等腰直角三角形、一般三角形),計算精度:1E-1。
輸入提示信息:「Input a,b,c:」
輸入格式:"%f,%f,%f"。
㈡ c語言判斷三角形
#
include
<stdio.h>
#
include
<math.h>
void
main()
{
int
a,b,c;
double
q,s;
printf("please
input
a,b
and
c\n");
scanf("%d%d%d",&a,&b,&c);
if(!(a>0
&&
b>0
&&
c>0))
{
printf("a
or
b
or
c
is
negative...");
}
if(!((a+b)>c
&&
(b+c)>a
&&
(a+c)>b))
{
printf("不能構成三角形\n");
}
else
{
q=(a+b+c)/2.0;
s=sqrt(q*(q-a)*(q-b)*(q-c));
if(a==b
||
b==c
||
a==c)
{
if(a==b
&&
b==c)
{
printf("是等邊三角形,面積是%lf\n",s);
}
else
{
printf("是等腰三角形,面積是%lf\n",s);
}
}
else
if((a*a+b*b==c*c)
||
(a*a+c*c==b*b)
||
(c*c+b*b==a*a))
{
printf("是直角三角形,面積是%lf\n",s);
}
else
{
printf("是一般三角形,面積是%lf\n",s);
}
}
}
㈢ C語言,怎麼編程判斷三角形的形狀
代碼如下:
#include <stdio.h>
#include <stdlib.h>
#defineEPSINON1e-3
#defineABS(a)(((a)>0)?(a):(-a)) //?:不支持表達式嵌套
#define ZERO(x)((x)>-EPSINON && (x)<EPSINON)
#define MAX(a,b)(((a)>(b))?(a):(b))
#define MIN(a,b)(((a)<(b))?(a):(b))
float a, b, c;
float max, mid, min;
char input_err_flag = 0;
char judge_err_flag = 0;
int equal(float a, float b)
{
float tmp;
tmp = a - b;
tmp = ZERO(ABS(tmp));
return tmp;
}
void input(void)
{
a = b = c = 0;
printf("輸入三條邊的值:");
scanf("%f %f %f",&a, &b, &c);
if(!(a>0) || !(b>0) || !(c>0))
{
input_err_flag = 1;
}
}
void sort(void)
{
max = MAX(MAX(a,b),c);
min = MIN(MIN(a,b),c);
if(MAX(a,b) < c)
mid = MAX(a,b);
else
mid = MAX(MIN(a,b),c);
}
void judge(void)
{
float max_square, mid_square, min_square, tmp;
if(max >= (mid+min))
{
judge_err_flag = 1;
}
else
{
max_square = max * max;
mid_square = mid * mid;
min_square = min * min;
tmp = mid_square + min_square;
if(equal(mid,min) || equal(max, mid))
{
if(equal(mid, min))
{
if(mid == max)
puts("等邊三角形。");
else if(equal(max_square, tmp))
puts("等腰直角三角形。");
else if(max_square < tmp)
puts("等腰銳角三角形。");
else
puts("等腰鈍角三角形。");
}
else
{
if(equal(min, mid))
puts("等邊三角形。");
else
puts("等腰銳角三角形。");
}
}
else if(equal(max_square, tmp))
puts("直角三角形。");
else if(max_square < tmp)
puts("銳角三角形。");
else
puts("鈍角三角形。");
}
}
int main(void)
{
char cs, ch;
do
{
input();
sort();
judge();
if(input_err_flag)
{
input_err_flag = 0;
while((cs=getchar())!='
' && (cs=getchar())!=EOF);
printf("輸入錯誤,a b c必須大於零,是否新輸入(y/n):");
}
else if(judge_err_flag)
{
judge_err_flag = 0;
while((cs=getchar())!='
' && (cs=getchar())!=EOF);
printf("組不成三角形,是否重新輸入(y/n):");
}
else
{
while((cs=getchar())!='
' && (cs=getchar())!=EOF);
printf("是否再輸入一組數據(y/n):");
}
ch = getchar();
}
while(ch=='y' || ch=='Y' || ch=='
');
puts("Goodbye!");
return 0;
}
㈣ C語言:三角形類型判斷(循環)
按照你的要求編寫的判斷三角形類型的C語言程序如下
#include<stdio.h>
#include<math.h>
floatcal_area(floata,floatb,floatc){
floatp,s;
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
returns;
}
intmain(){
inti,n;
floata,b,c,e=0.001;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%f%f%f",&a,&b,&c);
if(a+b<=c||a+c<=b||b+c<=a){
printf("notriangle ");
}elseif(fabs(a-b)<e&&fabs(b-c)<e){
printf("equilateraltriangle,");
printf("%.1f ",cal_area(a,b,c));
}elseif((fabs(a-b)<e||fabs(b-c)<e||fabs(a-c)<e)&&(fabs(a*a+b*b-c*c)<e||fabs(a*a+c*c-b*b)<e||fabs(b*b+c*c-a*a)<e)){
printf("isoscelesrighttriangle,");
printf("%.1f ",cal_area(a,b,c));
}elseif(fabs(a-b)<e||fabs(b-c)<e||fabs(a-c)<e){
printf("isoscelestriangle,");
printf("%.1f ",cal_area(a,b,c));
}elseif(fabs(a*a+b*b-c*c)<e||fabs(a*a+c*c-b*b)<e||fabs(b*b+c*c-a*a)<e){
printf("righttriangle,");
printf("%.1f ",cal_area(a,b,c));
}else{
printf("generaltriangle,");
printf("%.1f ",cal_area(a,b,c));
}
}
return0;
}
運行結果
3
3.02.06.0
notriangle
3.04.05.0
righttriangle,6.0
1.01.01.414
isoscelesrighttriangle,0.5
㈤ C語言 判斷三角形的類型
#include<stdio.h>
int
main(){
float
a,b,c,temp;
do{
printf("Please
input
a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
/*對a,b,c從小到大排序*/
if(a>b){temp=a;a=b;b=temp;}
if(a>c){temp=a;a=c;c=temp;}
if(b>c){temp=b;b=c;c=temp;}
if(a+b>c)break;
else
{printf("三角形不成立\n");}
}while(1);
if(a==b&b==c)printf("等邊三角形\n");
else
if(a==b)
if(a*a+b*b==c*c)printf("等腰直角三角形\n");
else
printf("等腰三角形\n");
else
if(a*a+b*b==c*c)printf("直角三角形\n");
else
printf("一般三角形\n");
}
你可以試驗一下,基本滿足要求,只有等腰直角三角形,不好測試,因為肯定有邊是帶根號的
無法輸入根號的數據啊
㈥ 關於c語言判斷是否為三角形的問題
首先是輸入3個數,即三角形三條邊,要有等於才行
前面3個條件滿足,才能構成三角形;否則不是三角形
然後判斷,是否有滿足直角形的條件;只要有兩個邊得平方等於另一個邊得平方;即使直角三角
形;輸出yes
你把最後兩個語句去掉看看,還有
else
if(c
>
b+c)printf("not
a
triangle\n");
你打錯了
㈦ c語言判斷三角形形狀
你對r賦值的時候用了兩個等於號「==」,賦值用一個等於號,判斷 的時候採用兩個!
而且輸出語句應該放在第一個if外面,應該就這兩個問題,代碼如下:
#include <stdio.h>
int main(){
int a, b, c, r;
printf("Please input three integers:\n");
scanf("%d%d%d",&a,&b,&c);
if(a == b ==c) r = 3;
else{
if(a + b > c && a - b < c){
if(b + c > a && b - c < a){
if(a + c > b && a - c < b){
if(a * a == b * b + c * c || b * b == a * a +c * c || c * c == a * a + b * b)
r = 1;
else if((a == b && a != c) || (b == c && a != b )|| (a ==c && b != a))
r = 2;
else
r = 0;
}
else
r = -1;
}
else
r = -1;
}
else
r =-1;
}
if(r == -1)
printf("Tt's not an integer.");
else if(r == 0)
printf("It's an scalenous triangle.");
else if(r == 1)
printf("It's an right-angeld triangle.");
else if(r == 2)
printf("It's an isosceles triangle.");
else if(r == 3)
printf("It's an equilateral triangle.");
return 0;
}
㈧ 如何用C語言編程序:輸入三個數,判斷是否構成三角形
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。