当前位置:首页 » 编程语言 » c语言的直角三角形
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言的直角三角形

发布时间: 2023-03-03 22:21:31

‘壹’ c语言 构成直角三角形的条件

修改如下(AC):
主要是加上判断能否构成三角形的部分,其次,题目要求使用int类型。
//---------------------------------------------------------------------------
#include
<stdio.h>
#include
<math.h>
int
main(void){
int
t,a,b,c;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&a,&b,&c);
if((a+b>c)&&abs(a-b)<c&&((a*a+b*b==c*c)||(c*c+b*b==a*a)||(a*a+c*c==b*b)))
printf("1\n");
else
printf("0\n");
}
return
0;
}
//---------------------------------------------------------------------------

‘贰’ C语言 输入三角形三条边(实数),如何判断是直角三角形

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

voidmain()
{
floata,b,c,temp;
printf("请输入三个数: ");
scanf("%f%f%f",&a,&b,&c);
printf("您输入的三个数是: ");
printf("%f %f %f ",a,b,c);
//判断哪个是最长的边
if(a<b)
{
temp=a;
a=b;
b=temp;
}
if(a<c)
{
temp=a;
a=c;
c=temp;
}
printf("现在的三个数: ");
printf("%f %f %f ",a,b,c);//现在a是最长边了
if((a+b>c)&&(a+c>b)&&(b+c>a)&&fabs(a*a-b*b-c*c)<1e-6)//浮点数不能直接判断等于不等于
printf("是直角三角形!! ");
else
printf("不是直角三角形!! ");
system("pause");
}

‘叁’ C语言判断直角三角形

浮点数判断相不相等 不能用“==” 是要用两个数相减,当小于一定的值就是相等的。
因为浮点数在计算机中不是精确表示的,,
判断比如: if (abs(x*x+y*y-z*z)<1e-x) (abs函数代表绝对值的意思, 1e-x 代表 10的负x次方,x可以为6,7,8等)

‘肆’ c语言如何输出n行的直角三角形(实心的)

先不说你代码逻辑,你这个代码ij都是整数,循环自增不能用浮点数。

直角三角形,有等腰和非等腰,需要输入2个边,且只能按照两边比例来算,所以斜边只能是一个近似值。

我的代码,精度常量自行修改,边长越大,画面精度越好。(但是由于控制台固定大小,实际能显示的长度有限)。


#include <stdio.h>

#define X 0.001//精确度,越小精确

int main()

{

char ch;

int a,b,i,j;

printf("请输入填充字符:"),scanf("%c",&ch);

printf("请输入2个直角边的字符个数:"),scanf("%d%d",&a,&b);//默认a<=b

if(a>b) a^=b,b^=a,a^=b;

for(i=0;i<a;i++,printf(" "))

for(j=0;j<b;j++)

{

if(i==0){printf("%c",ch);break;}

if(i!=0 && j==0)printf("%c",ch);

if(i!=0 && j!=0 && a==b && j<=i)printf("%c",ch);//等腰

if(i!=0 && j!=0 && a!=b && (double)i/j-(double)a/b>X) printf("%c",ch);//非等腰

}

return 0;

}

‘伍’ 直角三角形用C语言怎么写

我们不看源程序,就自己的理解来做,直角三角形,就是在N行输出N个*号,你这样想程序就很快就出来了,两个FOR循环,第一个规定了输出的层数,里面的for规定了每行输出的*个数,
所以就是为什么是c<=b,第一行时,b=1,输出一个,第N行时,输出N个,b即代表着所在的行数(在第一个FOR中的角色),又代表着每行输出的*的个数(第二个FOR的角色),你可是还是对for语法理解的错误。因为B是个变量,每次进入里面的for时,b的值都是不同的,而a相对而言是不变的量,它就代表的输出的行数