『壹』 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相對而言是不變的量,它就代表的輸出的行數