一个分数加法的程序,大佬们请帮我查查错,谢谢!
  • 板块学术版
  • 楼主chanthu2114
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/11/11 19:46
  • 上次更新2023/10/27 03:22:45
查看原帖
一个分数加法的程序,大佬们请帮我查查错,谢谢!
738212
chanthu2114楼主2022/11/11 19:46
#include <bits/stdc++.h>
using namespace std;
int a[10], b[10], tmp, cnt, tmp2, cnt2;
int main()
{
	for (int i = 0; i < 7; i++)
		cin >> a[i];
	if (char(a[3]) == '+')
	{
		//通分 
		tmp = min(a[2], a[6]);
		for (int i = tmp; i <= a[2] * a[6]; i++)
		{
			if (i % a[2] == 0 && i % a[6] == 0)
			{
				cnt = i;
				break;
			}
		}
		a[2] = cnt;//可省 
		a[6] = cnt;//可省  
		a[0] = a[0] * (cnt / a[2]);
		a[4] = a[4] * (cnt / a[6]);
		// 分母不变,分子相加 
		b[0] = cnt;
		b[1] = '/';
		b[2] = a[0] + a[4];
		//约分 
		tmp2 = min(b[0], b[2]);
		for (int i = tmp2; i >= 1; i--)
		{
			if (b[0] % i == 0 && b[2] % i == 0)
				cnt2 = i;	
		}
		b[0] = b[0] / cnt2;
		b[2] = b[2] / cnt2;
		cout << b[0] << " " << char(b[1]) << " " << b[2];
	}
	return 0;
}

输入样例1:1 / 2 + 1 / 3 输出样例1:5 / 6 输入样例2:2 / 3 + 1 / 3 输出样例:1 / 1 一个分数加法的程序,大佬们请帮我查查错,谢谢!

2022/11/11 19:46
加载中...