任意输入三条边的边长(实数类型),判断能否组成三角形。如果不能组成三角形,程序就输出“It is not a triangle”;如果能组成三角形,就进而判断该三角形是否为直角三角形。如果不是直角三角

#include <stdio.h>
int isTriangle(int a[3]); //函数申明 
int isRightTriangle(int a[3]);
int sort(int a[3]);
int number(int min, int max);

int main(){
	int a[3];
	for (int i = 0; i < 3; i++){
		printf("输入三条边的长度:");
		scanf("%d",&a[i]);}
		
//		isTriangle(a[i]);}
	if (isTriangle(a) == 0)
	{
			printf("It not is a triangle");
	}else if (isRightTriangle(a) == 0){
		printf("It not is a right triangle");
	}else{
		printf("It is a right triangle");
		sort(a);
		int max = a[3];
		int min = a[0];
//	printf("%d",sort(a)); //返回值不显示 
		number (max,min);
		printf("\n输出的最小余弦值为:%d/%d",min/number (max,min),max/number(max,min));
	}

	return 0;
	}
	

 
	//判断三角形 
	int isTriangle(int a[3]){
		if (a[0] + a[1] > a[2] && a[0] + a[2] > a[1] && a[1] + a[2] > a[0]){
			return 1;
		}else{
			return 0;
		}
		
	}
	
	//判断是否为直角三角形	
	int isRightTriangle(int a[3]){
		if (a[0]*a[0]+a[1]*a[1] == a[2]*a[2] 
		|| a[0]*a[0]+a[2]*a[2] == a[1]*a[1] 
		|| a[2]*a[2]+a[1]*a[1] == a[0]*a[0])
		{
			return 1;	
		}else{
			return 0;
		}
	}
	
	//数组进行从小到大排序 
	int  sort(int a[3]){
		int temp = 0;
		for (int i = 0; i < 3; i++){
			if (a[i] > a[i+1]){
				temp = a[i];
				a[i] = a[i+1];
				a[i+1] = temp;
			}
			
		}
	}
	//两个数的最大公约数  --辗转相除法
	int number(int m, int n){
		int t;
		while (t = m % n){
			m = n;
			n = t;
		}
		return n;
		}
	
	 

原题:

任意输入三条边的边长(实数类型),判断能否组成三角形。如果不能组成三角形,程序就输出“It is not a triangle”;如果能组成三角形,就进而判断该三角形是否为直角三角形。如果不是直角三角形,程序就输出“It is not a right triangle”;否则,输出最小余弦值的最简分式。例如,三条边的边长分别是6、8、10,最小的余弦值是6/10,那么输出的结果应该是3/5。
 

有改进的地方大家可以评论:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值