#21557: 請問要怎麼改謝謝


CHchao (kk)

學校 : 不指定學校
編號 : 123472
來源 : [220.142.222.216]
最後登入時間 :
2020-06-20 06:58:43
d507. 三角形的判斷 -- 板橋高中教學題 | From: [220.143.158.238] | 發表日期 : 2020-06-19 22:19

#include <iostream>
#include <math.h>
using namespace std;
int main(){                                                           
 int a,b,c;
 cin >> a >> b >> c;
 
 if( pow(c,2) ==pow(a,2) + pow(b,2))
  {
   cout << "right triangle" << endl;
  }
 

 else if( pow(c,2) < pow(a,2) + pow(b,2))
 {
  cout<<"acute triangle"<<endl;
 }
        else if( pow(c,2) > pow(a,2) + pow(b,2))
  {
   cout << "obtuse triangle" << endl;
  }
 else
 {
  cout << "no answer" << endl;
 }
 return 0;
}

 
#21559: Re:請問要怎麼改謝謝


610078 (電資意大利麵的最後希望)

學校 : 國立臺北科技大學
編號 : 119723
來源 : [114.36.35.205]
最後登入時間 :
2024-05-08 19:49:00
d507. 三角形的判斷 -- 板橋高中教學題 | From: [49.216.107.76] | 發表日期 : 2020-06-20 09:27

他說題目競賽中,我看不到題目

但我猜abc大小不固定?

先排序?

我在猜啦,畢竟看不到題目

 
#21560: Re:請問要怎麼改謝謝


610078 (電資意大利麵的最後希望)

學校 : 國立臺北科技大學
編號 : 119723
來源 : [114.36.35.205]
最後登入時間 :
2024-05-08 19:49:00
d507. 三角形的判斷 -- 板橋高中教學題 | From: [49.216.107.76] | 發表日期 : 2020-06-20 09:29

#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
	int array[4];
	int buffer;
	while (cin >> array[1] >> array[2] >> array[3])
	{
		//排序
		for (int i = 1; i <= 2; i++)
			for (int j = 2; j <= 3; j++)
				if (array[j] < array[i])
				{
					buffer = array[i];
					array[i] = array[j];
					array[j] = buffer;
				}
		int a = array[1];
		int b = array[2];
		int c = array[3];
		if (a * a + b * b == c * c)
			cout << "right triangle" << endl;
		else if (a * a + b * b < c * c)
			cout << "obtuse triangle" << endl;
		else if (a * a + b * b > c * c)
			cout << "acute triangle" << endl;
	}
	//system("PAUSE");
	return 0;
}
 
#22290: Re:請問要怎麼改謝謝


s10806226@smail.ycsh.tp.edu.tw (Eri)

學校 : 臺北市立永春高級中學
編號 : 108040
來源 : [101.3.116.101]
最後登入時間 :
2022-05-11 14:14:13
d507. 三角形的判斷 -- 板橋高中教學題 | From: [219.91.14.225] | 發表日期 : 2020-08-22 00:33

附上無排序版本:

#include <cstdio> #define max(x,y,z) x>y && x>z?x:(y>z?y:z) using namespace std; int main(){ int a,b,c,mx; while(scanf("%d%d%d",&a,&b,&c)!=EOF){ mx=max(a,b,c); mx=mx*mx*2,a*=a,b*=b,c*=c; if(mx==a+b+c)printf("right triangle\n"); else if(mx>a+b+c)printf("obtuse triangle\n"); else printf("acute triangle\n"); } return 0; }

其實只要a b c 分開輸入,並在每一次輸入完後比較大小就好。

不需要沒事寫這很做作的東西 ---> x>y && x>z?x:(y>z?y:z)



 
ZeroJudge Forum