c++分数计算器

最近写了一个分数计算器,跟大家炫耀分享一下。

1.思路

        1.分数乘法

                数学老师:“两个分数相乘,用分字相乘的积做分子,分母相乘的积做分母。

        2.分数除法

                数学老师:“两个分数相除,用一个分数乘另一个分数的倒数

:能约分的要约成最简分数。

2.代码

        1.头文件

                

#include<bits/stdc++.h>
using namespace std;

        2.函数 

                 1.辗转相除函数
int gcd(int n,int m){
	while(n!=0){
		int t=m%n;
		m=n;
		n=t;
	}
	return m;
}
                  2.分数结构体
struct node{
	int up;
	int down;
};
                 3.约分函数

int yf(){
	node n;
	cin>>n.up;
	cin>>n.down;
	int _gcd=gcd(n.up,n.down);
	n.up/=_gcd;
	n.down/=_gcd;
	return n.up,n.down;
}
                 4.输出约分函数

void out_yf(){
	node n;
	cin>>n.up;
	cout<<"_"<<endl;
	cin>>n.down;
	int _gcd=gcd(n.up,n.down);
	n.up/=_gcd;
	n.down/=_gcd;
	cout<<n.up<<" "<<n.down<<endl;
	system("pause");
	return;
}
                 5.乘法函数
void cf(){
	node n1,n2;
	cin>>n1.up;
	cout<<"_"<<endl;
	cin>>n1.down;
	cin>>n2.up;
	cout<<"_"<<endl;
	cin>>n2.down;
	n1.up=n1.up*n2.up;
	n1.down=n1.down*n2.down;
	int _gcd=gcd(n1.up,n1.down);
	n1.up/=_gcd;
	n1.down/=_gcd;
	system("cls");
	if(n1.down==1){
		cout<<n1.up;
		system("cls");
		return;
	}
	cout<<n1.up<<endl<<"_"<<endl<<n1.down<<endl;
	system("pause");
	return;
}
                 6.除法函数
void chuf(){
	node n1,n2;
	cin>>n1.up;
	cout<<"_"<<endl;
	cin>>n1.down;
	cin>>n2.up;
	cout<<"_"<<endl;
	cin>>n2.down;
	n1.up=n1.up*n2.down;
	n1.down=n1.down*n2.up;
	int _gcd=gcd(n1.up,n1.down);
	n1.up/=_gcd;
	n1.down/=_gcd;
	system("cls");
	if(n1.down==1){
		cout<<n1.up;
		system("cls");
		return;
	}
	cout<<n1.up<<endl<<"_"<<endl<<n1.down<<endl;
	system("pause");
	return;
}

3.主函数

int main()
{
	while(1){
		cout<<"      分数计算器"<<endl;
		cout<<"  0.退出"<<endl;
		cout<<"  1.乘法"<<endl;
		cout<<"  2.除法"<<endl;
		cout<<"  3.约分"<<endl;
		int n;
		cin>>n;
		system("cls");
		
		if(n==0){
			return 0;
		}else if(n==1){
			cf();
		}else if(n==2){
			chuf();
		}else if(n==3){
			out_yf();
		}
		system("cls");
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值