C++ Viết chương trình nhập vào hai phân số. Tính tổng, hiệu, tích, thương giữa chúng và xuất kết quả

#include <iostream>
using namespace std;
typedef struct PHANSO
{
	int TuSo;
	int MauSo;
}PS;
void Nhap(PS& x)
{
	cout << "Nhap tu so: ";
	cin >> x.TuSo;
	do
	{
		cout << "Nhap mau so: ";
		cin >> x.MauSo;
	} while (x.MauSo == 0);
}
void QuyDong(PS x, PS y, int& a, int& b, int& MauChung)
{
	a = x.TuSo * y.MauSo;
	b = y.TuSo * x.MauSo;
	MauChung = x.MauSo * y.MauSo;
}
int USCLN(int m, int n)
{
	if (m % n == 0)
		return n;
	return USCLN(n, m % n);
}
void RutGon(int a, int b)
{
	int i = USCLN(a, b);
	a = a / i;
	b = b / i;
	if ((a < 0 && b < 0) || (a > 0 && b < 0))
	{
		a = -a;
		b = -b;
	}
	if (a % b == 0) cout << a / b << '\n';
	else cout << a << "/" << b << '\n';
}
void Xuat(PS x, PS y,int &a,int &b,int &MauChung)
{
	QuyDong(x, y, a, b, MauChung);
	cout << "Tong 2 phan so = ";
	RutGon(a + b, MauChung);
	cout << "Hieu 2 phan so = ";
	RutGon(a - b, MauChung);
	cout << "Tich 2 phan so = ";
	RutGon(x.TuSo * y.TuSo, x.MauSo * y.MauSo);
	cout << "Thuong 2 phan so = ";
	RutGon(x.TuSo * y.MauSo, y.TuSo * x.MauSo);

}
int main()
{
	PS PS1, PS2;
	int a, b, MauChung;
	cout << "Nhap phan so thu nhat:" << '\n';
	Nhap(PS1);
	cout << "Nhap phan so thu hai:" << '\n';
	Nhap(PS2);
	Xuat(PS1, PS2, a, b, MauChung);
	return 0;
}
//Created by Akarata

Bạn đăng nội dung này với mục đích gì vậy ạ ? :grinning:

Đây là đang viết kiểu C chứ đâu phải C++?

2 Likes

tại sao hàm nhập cần tham chiếu vậy ạ

Vì hàm nhập cần thay đổi tham số :smiley:

Thực ra đối tượng dùng tham chiếu luôn, chỉ khác nhau là const hay không thôi.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?