Code Bài Toán Phân Số Không Tính được - Dạy Nhau Học Trang chủ » Tính If/ib » Code Bài Toán Phân Số Không Tính được - Dạy Nhau Học Có thể bạn quan tâm Tin Hifi P1 đánh Giá Tính If Trong Excel Tỉnh Iga Tính Igh Tính I Giới Hạn Code bài toán phân số không tính được programming c++ Su_Su (Pham Anh) July 4, 2021, 4:45am #1 Bài toán tính tổng hiệu tích thương 2 Phân số.Khi em nhập phân số thứ 2 > ps 1 thì không tính được.Tìm giúp em lỗi với ạ.Em cảm ơn !!! @ltd @david15894 #include<iostream> #include<conio.h> #include<math.h> #include<stdlib.h> //#include<stdio.h> using namespace std; struct SPhanSo { int iTuSo; int iMauSo; }; void NhapPhanSo(SPhanSo &PS,int n) { cout << "Nhap phan so thu "<<n<<" : "<<endl; cout << "Nhap tu so : "; cin >> PS.iTuSo; do { cout << "Nhap mau so khac 0 : "; cin >> PS.iMauSo; if(PS.iMauSo == 0) cout << "Vui long nhap mau so khac 0 "<<endl; } while(PS.iMauSo == 0); } int TinhUocChungLonNhat(int iA,int iB) { int UCLN; while( iA != iB ) { if(iA > iB) iA = iA - iB; else iB = iB - iA; } UCLN = iA; return UCLN; } int TinhBoiChungNhoNhat(int iA,int iB) { int UCLN = TinhUocChungLonNhat(iA,iB); int BCNN = iA * iB / UCLN; return BCNN; } void RutGonPhanSo(SPhanSo &PS) { int u = TinhUocChungLonNhat(PS.iTuSo,PS.iMauSo); PS.iTuSo = PS.iTuSo / u; PS.iMauSo = PS.iMauSo / u; } SPhanSo TongHaiPhanSo(SPhanSo PS1,SPhanSo PS2) { SPhanSo Tong; int b = TinhBoiChungNhoNhat(PS1.iMauSo,PS2.iMauSo); Tong.iTuSo = (PS1.iTuSo *(b / PS1.iMauSo))+ (PS2.iTuSo * (b / PS2.iMauSo)); Tong.iMauSo = b; RutGonPhanSo(Tong); return Tong; } SPhanSo HieuHaiPhanSo(SPhanSo PS1,SPhanSo PS2) { SPhanSo Hieu; int b = TinhBoiChungNhoNhat(PS1.iMauSo,PS2.iMauSo); Hieu.iTuSo = (PS1.iTuSo * b / PS1.iMauSo) - (PS2.iTuSo * b / PS2.iMauSo); Hieu.iMauSo = b; RutGonPhanSo(Hieu); return Hieu; } SPhanSo TichHaiPhanSo(SPhanSo PS1,SPhanSo PS2) { SPhanSo Tich; Tich.iTuSo = PS1.iTuSo * PS2.iTuSo; Tich.iMauSo = PS1.iMauSo * PS2.iMauSo; RutGonPhanSo(Tich); return Tich; } SPhanSo ThuongHaiPhanSo(SPhanSo PS1,SPhanSo PS2) { SPhanSo Thuong; Thuong.iTuSo = PS1.iTuSo * PS2.iMauSo; Thuong.iMauSo = PS1.iMauSo * PS2.iTuSo; RutGonPhanSo(Thuong); return Thuong; } int main() { SPhanSo PS1; SPhanSo PS2; NhapPhanSo(PS1,1); NhapPhanSo(PS2,2); system("cls"); SPhanSo Tong = TongHaiPhanSo(PS1,PS2); SPhanSo Hieu = HieuHaiPhanSo(PS1,PS2); SPhanSo Tich = TichHaiPhanSo(PS1,PS2); SPhanSo Thuong = ThuongHaiPhanSo(PS1,PS2); cout << "Tong 2 phan so la : "<<Tong.iTuSo<<"/"<<Tong.iMauSo<<endl; cout << "Hieu 2 phan so la : "<<Hieu.iTuSo<<"/"<<Hieu.iMauSo<<endl; cout << "Tich 2 phan so la : "<<Tich.iTuSo<<"/"<<Tich.iMauSo<<endl; cout << "Thuong 2 phan so la : "<<Thuong.iTuSo<<"/"<<Thuong.iMauSo<<endl; getch(); return 0; } Gio (Gió) March 6, 2015, 8:38am #2 Bị lỗi là do khi ps1 < ps2 thì ps1 - ps2 có tử số <=0 || mẫu số <=0 do đó hàm TinhUocChungLonNhat sẽ chạy vô hạn. ####Sửa lại: int TinhUocChungLonNhat(int iA,int iB) { int UCLN; if(iA<0) iA=-iA; if(iB<0) iB=-iB; if(iA==0) return iB; if(iB==0) return iA; while( iA != iB ) { if(iA > iB) iA = iA - iB; else iB = iB - iA; } UCLN = iA; return UCLN; } 3 Likes Nguyen_Anh_Dung (Nguyễn Anh Dũng) March 6, 2015, 11:51am #3 có thể đặt lại iA=abs(iA); iB=abs(iB); trông code nó gọn hơn Gio (Gió) March 6, 2015, 12:11pm #4 ####edited: à trong c thì hàm abs là của int còn cpp nó lại chỉ áp dụng cho số thực. Nếu dùng thì phải gọi std::abs(int) trong thư viện cstdlib thì phải. 1 Like DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Tính If/ib Đề Giữa Học Kì 2 Toán 8 Năm 2021 - 2022 Trường TH&THCS Ngôi ... Đề Giữa Học Kì 2 Toán 8 Năm 2021 – 2022 ... - Cẩm Nang Tiếng Anh Đề Giữa Học Kì 2 Toán 8 Năm 2021 – 2022 Trường ... - Wiki Secret Đề Giữa Học Kì 2 Toán 8 Năm 2021 – 2022 Trường ... - Mobitool Dịch Vụ Internet Banking Techcombank |F@st I-bank Cách Tính Chênh Lệch Thời Gian Trong Excel Dễ Thực Hiện Đề Giữa Học Kì 2 Toán 8 Năm 2021 – 2022 Trường ... - Edu Learn Tip Đề Kiểm Tra Giữa Học Kì 2 Toán 8 Trường TH&THCS Ngôi Sao Hà Nội ... Đề Thi Học Kì 2 Toán 9 BÌNH AN-Q8 Tp Hồ Chí Minh Năm 2019-2020. Chứng Minh Rằng IF * IA = IB^2 - Bài Tập Toán Học Lớp 9 - Lazi BC=8cm. Trên Cạnh AB Lấy điểm D Sao Cho AD=2cm - Toán Học Lớp 8 Đề Thi HK2 Toán 9 - THCS Bình An - SlideShare