Giải thích giúp vấn đề trong code struct phân số

em có tạo 1 cấu trúc phân số

struct PhanSo{
int tu;
int mau;
};

em làm bài tập tính tổng 2 phân số

 for(i = 0; i < 2; i++) {
        printf("tu %d: ", i + 1);
        scanf("%d", &ps[i].tu);
        printf("mau %d: ", i + 1);
        scanf("%d", &ps[i].mau);
        tong2phanso = tongPhanSo(ps[i], ps[i]);
    }

trong vong lặp for này em cho nhập lần lượt tử và mẩu của phân số 1 và 2 em cũng cho hàm tính tổng 2 phân số vào vòng lạp luôn, với 2 tham số ps[i] thứ nhất và ps[i] thứ 2 em nghĩ rang nó sẽ chạy từ ps[0] rồi mới tới ps[1] đúng ko ạ… Em nghĩ rang cứ theo vong lặp thì nó sẽ ra như vầy -> tongPhanSo(ps[0], ps[1])
Chương trình của em hoạt động ngon lắm ko lỗi lằm gì và em cũng rất ngạc nhiên luôn ko thể tin đợc

Có phải do mình lâu rồi không học tiếng việt ở trường nữa nên không hiểu bạn đang viết gì phải không ta?

Hàm này bạn tính tổng của 2 phân số có cùng giá trị tại cùng thời điểm, hàm tong2 phanso bạn không đưa lên thì cũng chịu thôi. À quên, không cần đưa lên thì thuật của bạn cũng sai rõ ràng rồi :confused:

1 Like
tong2phanso = tongPhanSo(ps[i], ps[i]);

bạn tự lấp ps[i] cộng với chinh nó mà có phải cộng với phân số nhập trước đâu :frowning:

2 Likes

Vậy là sai rồi hả bạn làm ơn giải thích rõ hơn tí đc ko

Nếu muốn tính trong vòng lặp thì viết cũng tựa tựa tính với số thôi.

2 Likes

Vậy là nó có chạy theo thứ tự như mình đã nói ở trên ko

Rõ ràng là

bằng tong2phanso = ps[i] * 2 mà? Sao bằng tong2phanso = tongPhanSo(ps[0], ps[1]) được?

mình tạo ra cấu trúc phân số có tử và mẩu, tong2phanso là biến dạng cấu trúc và tongPhanSo(ps[0], ps[1]) là hàm tính tổng 2 phân số 1 và phân số 2 mà

Ý là vậy nhưng code lại khác :slight_smile: thì code sai thôi.

2 Likes

Nhưng bạn thấy chỗ bạn sai chưa?

1 Like

a` mình bị sai logic rồi các bạn ơi haha mình biết rồi

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