Từ 1 tới 10 trên tổng số 10 kết quả

Đề tài: Tối giản phân số | Phân số tối giản | Lập trình C

  1. #1
    Ngày gia nhập
    03 2007
    Bài viết
    10

    Mặc định Tối giản phân số | Phân số tối giản | Lập trình C

    các bạn chỉ cho mình cái hàm để tính tối giản phân số với,mình làm hoài ko được
    toàn bị ra sai kết quả với phép tính trừ 2 phân số

  2. #2
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    ac ! Bình thường bạn giải thế nào ? THi viết cái giải thuật ra như vậy rồi chuyển thành code . Vậy thôi !
    1: kiểm tra tử và mẫu có ước số nào chung hay không ? Đơn giản thì có thể cho 1 vòng for kiểm tra .
    2: QUi đông mẫu số , rồi trừ 2 cái tử , sau đó thì tối giản nó theo hàm 1 . vậy là ok rùi .

  3. #3
    Ngày gia nhập
    04 2007
    Nơi ở
    Ho Chi Minh City
    Bài viết
    9

    Mặc định Rút gọn phân số:

    Trích dẫn Nguyên bản được gửi bởi dragoncl12 Xem bài viết
    các bạn chỉ cho mình cái hàm để tính tối giản phân số với,mình làm hoài ko được
    toàn bị ra sai kết quả với phép tính trừ 2 phân số
    C Code:
    1. int USCLN(int a, int b)
    2. {
    3.     if(a==0) return b
    4.     return USCLN(b%a,a);
    5. }
    6. void (int *TS, int *MS)
    7. {
    8.    int temp=USCLN(*TS, *MS);
    9.    *TS /= temp;
    10.    *MS /= temp;
    11. }

    Chúc bạn gặp may,
    Ký tên : Vũ Ngọc Hoàng

  4. #4
    No Avatar
    huyhoangproduction Khách

    bài này có gì khó khăn đâu mà bạn

  5. #5
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Hình như trong môn Toán Rời Rạc có thuật toán tìm ước số chung nhỏ nhất í ? cũng có thể vận dụng nó trong bài này nè

  6. #6
    Ngày gia nhập
    01 2007
    Bài viết
    412

    Mặc định Tối giản phân số | Phân số tối giản | Lập trình C

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    Hình như trong môn Toán Rời Rạc có thuật toán tìm ước số chung nhỏ nhất í ? cũng có thể vận dụng nó trong bài này nè
    Hi,1 cách khác để tính USCLN đây, bà con đọc thêm để tham khảo
    C Code:
    1. int USCLN(int a,int b)
    2. {
    3.      if (a%b==0) return b;
    4.      else return USCLN(b,a%b);
    5. }

    Ngoài ra các bạn có thể tham khảo thêm về vấn đề này tại:
    http://vi.wikipedia.org/wiki/Giải_thuật_Euclid

  7. #7
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Cho cấu trúc: struct frac {int tu,mau;};
    Cho hàm:
    C Code:
    1. int ucln(int m,int n){
    2.     int sodu, tich = m*n;
    3.     while (n != 0){sodu = m % n; m = n; n = sodu;}
    4.     return m;
    5. }
    Ta có hàm tối giản phân số:
    C Code:
    1. frac toigian(frac a){
    2.     int temp = ucln(a.tu,a.mau);
    3.     a.tu /= temp;
    4.     a.mau /= temp;
    5.     return a;
    6. }

  8. #8
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Uhm ! Cách này có vẻ hay đấy , nhưng nếu chỉ tìm mỗi một phân số thì như vậy là khá rườm rà .

  9. #9
    Ngày gia nhập
    03 2007
    Bài viết
    10

    rất cám ơn bạn, cách này rất hay.

  10. #10
    Ngày gia nhập
    11 2006
    Bài viết
    633

    nhưng nếu chỉ tìm mỗi một phân số thì như vậy là khá rườm rà .
    OOP mà, rườm rà phức tạp nhưng lại phát triển tốt hơn.

Các đề tài tương tự

  1. Chung cư Kim Văn Kim Lũ_Nguyễn Xiển vành đai 3.Giá rẻ vị trí đẹp
    Gửi bởi haonhien68 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 03-01-2014, 03:18 PM
  2. Khởi tạo giá trị min ban đầu trong việc tìm min đường chéo phụ ma trận
    Gửi bởi itc trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 02-08-2013, 03:32 PM
  3. bài tập ôn giải thuật phần chia để trị
    Gửi bởi gio_dem trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 17-04-2012, 10:50 AM
  4. Chỉnh sửa dùm code đọc giá trị tại vùng nhớ.
    Gửi bởi hsagduag trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 29-03-2012, 12:01 AM
  5. giá trị nhị phân của ký tự '\0'
    Gửi bởi huhuhuhu trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 30-10-2011, 11:00 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn