题目

在这里插入图片描述

分析

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 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_48824303/article/details/127270492