Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 7 của 7
  1. #1

    hỏi s(n) = 1/2 + 1/4 +.. + 1/2n

    em làm như này

    //s(n) = 1/2 + 1/4 +.. + 1/2n

    #include <stdio.h>
    #include <windows.h>

    main() {
    system("cls");
    int i,n;
    float s=0;
    printf("nhap n=");
    scanf("%d",&n);
    for (i=1; i<=n; i++)
    {
    s = s + (float)(1/(i*2));
    }
    printf("s=%f",s);
    system("pause");
    //return 1;
    }

    cảm thấy thuật toán k có gj sai mà khi chạy thử với n=2 kết quả toàn ra 1.5 mới cay chứ
    mọi người giải đáp giúp em với

  2. #2
    Ngày tham gia
    Sep 2015
    Đang ở
    89 Tam Trinh - Hoàng Mai - Hà Nội
    Bài viết
    0
    còn không để (float)1/(i*2) ... xem kết quả thế nào ... bỏ 1 () đi

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    ban đầu ta tính làm bỏ () đi đó nhưng mà sợ khó hiểu hơn là để 1.0f

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi INTP
    ban đầu ta tính làm bỏ () đi đó nhưng mà sợ khó hiểu hơn là để 1.0f
    em đang không ở nhà nên k thử để 1.0f dc nhưng tối qua đã thử (float)1/(i*2) kết quả vẫn thế

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi conrongchautien
    Mã:
    ((float)(1))/(i * 2)
    cứ ngoặc hết vào cho nó nhanh. Suy nghĩ làm gì cho lắm
    [IMG]images/smilies/smile.png[/IMG]) dc rồi bác ạ, có mỗi cái ngoặc thôi mà đau đầu suốt tối qua đấy =))

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    s = s + 1.0f/(i*2);

    nếu viết là
    (float)(1/(i*2))
    thì
    1/(i*2)
    sẽ được tính trước, mà int / int thì ra int chứ ko ra float, nên 1/2 sẽ ra 0, thay vì 0.5

    sửa thành
    1.0f/(i*2)
    thì float / int sẽ ra float...

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã:
    ((float)(1))/(i * 2)
    cứ ngoặc hết vào cho nó nhanh. Suy nghĩ làm gì cho lắm

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •