0
点赞
收藏
分享

微信扫一扫

c 到 c++ 过渡

老王420 2024-11-06 阅读 14

目录

1.题目要求

2.题目解读 

1.如何对a,b,c进行排序 

 2.如何约分

1.枚举法

2.辗转相除法(推荐) 

3.代码实现


1.题目要求

2.题目解读 

 首先需要了解三角函数,有困惑的可以一键直达~三角函数(数学名词)_百度百科

想强调两个点,

1.如何对a,b,c进行排序 

在c语言中可以用qsort函数进行排序,详解如下:

 

 2.如何约分

约分的核心在于寻找两个数的最大公约数,这里提供两种方式:

1.枚举法

#include<stdio.h>
int main()
{
	int a,b;
	int min;
	
	scanf("%d %d",&a,&b);
	if(a<b){
		min=a;
	}else{
		min=b;
	}
	int ret=0;
	int i;
	for(i=1;i<min;i++){
		if(a%i==0) {
			if(b%i==0){
				ret=i;
			}
		}
	}
	printf("%d和%d的最大公约数是%d\n",a,b,ret);
	return 0;
}

2.辗转相除法(推荐) 

#include<stdio.h> 
int main()
{
	int a,b;
	int t;
	scanf("%d %d",&a,&b);
	while(b!=0){
		t=a%b;
		a=b;
		b=t;
	}
	printf("最大公约数是%d\n",a);
	return 0;
}

3.代码实现

#include<stdio.h>
#include<stdlib.h>
int compare(const void*a,const void*b){
	return(*(int*)a-*(int*)b);
}

int main()
{
	int a,b,c;
	scanf("%d %d %d",&a,&b,&c);
	//排序
	int sides[3]={a,b,c};
	qsort(sides,3,sizeof(int),compare);
	a=sides[0];
	b=sides[1];
	c=sides[2];
	//约分
	int d=a;
	int e=c;
	int t;
	while(c!=0){
			t=a%c;
			a=c;
			c=t;
		}
	d=d/a;
	e=e/a;		
	printf("%d/%d",d,e);
	return 0;
}

 ***新人博主创作不易,希望多多点赞关注呀~

举报

相关推荐

0 条评论