题目
分析
1、输入四根木棍的长度,输出三角形判断结果。
2、限制条件
三角形判断条件:
(1)正常三角形的判断,两短边之和大于第三边,最大的两条边之差小于第三边。
(2)伪三角形的判断,两短边之和等于第三边
(3)不为三角形的判断,不满足上面条件的其他情况
3、
解决方法
第一种方法:
将第一根木棍长度与第二根木棍长度跟第三和第四根分别去判断,一直轮流判断,直到判断出属于该三角形的特征,输出result。
第二种方法:
将输入的四根木棍长度从小到大排列好,然后再去进行判断,得到result
//第二种方法
#include <stdio.h>
//将输入的四根木棍长度进行排列
int solution(int m, int n, int p, int q){
int result;
int arrLength[4] = {0};
int i,j;
arrLength[0] = m;
arrLength[1] = n;
arrLength[2] = p;
arrLength[3] = q;
for(i = 0;i < 4;i++){
for(j = i + 1;j < 4;j++){
if(arrLength[i] > arrLength[j]){
int t;
t = arrLength[i];
arrLength[i] = arrLength[j];
arrLength[j] = t;
}
}
}//判断三角形类型
if(arrLength[0] + arrLength[1] > arrLength[2] || arrLength[0] + arrLength[1] > arrLength[3] || arrLength[1] + arrLength[2] > arrLength[3])
{
if(arrLength[0] + arrLength[1] < arrLength[2] || arrLength[0] + arrLength[1] < arrLength[3] || arrLength[1] + arrLength[2] < arrLength[3])
{
result = 1;
}
}
else if(arrLength[0] + arrLength[1] == arrLength[2] || arrLength[0] + arrLength[1] == arrLength[3] || arrLength[1] + arrLength[2] == arrLength[3]){
result = 0;
}
else{
result = -1;
}
// TODO: 请在此编写代码
return result;
}
int main() {
int m;
int n;
int p;
int q;
scanf("%d", &m);
scanf("%d", &n);
scanf("%d", &p);
scanf("%d", &q);
int result = solution(m, n, p, q);
printf("%d", result);
//输出三角形类型
return 0;
}
输入 1234
输出 1
版权声明:本文为qq_48824303原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。