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 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Tai sao i phai la float?

    Đề: Nhập N, tính tổng Sn=1+1/2+1/4+...+1/(2*n)
    Code
    Mã:
    #include<stdio.h>
    #include<conio.h>
    main()
    {
          int n;
          float fs=1,i;
          printf("Nhap gia tri cua N: ");
          scanf("%d",&n);
          for(i=1;i<=n;i++)// Tai sao i phai la float???
          fs=(fs+1/(2*i));
          printf("Tong: %f",fs);
          getch();
    }
    Khi mình để i là int thì máy nó tính toán theo kiểu số nguyên, mặc dù phép tính đó áp dụng với fs(thuoc float).

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    i không cần thiết phải là float nữa.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi kuzun9x
    Đề: Nhập N, tính tổng Sn=1+1/2+1/4+...+1/(2*n)
    Khi mình để i là int thì máy nó tính toán theo kiểu số nguyên, mặc dù phép tính đó áp dụng với fs(thuoc float).
    Khi các toán hạng là số nguyên thì kết quả cũng là số nguyên
    vì vậy 2*i là nguyên, và 1/(2*i) cũng là nguyên (và sẽ ra 0)
    Vì vậy với i là số nguyên thì phải viết
    fs=(fs+1.0/(2*i));
    hoặc
    fs=(fs+1/(2.0*i));
    hoặc
    fs=(fs+1/(2.0*(float)i));
    Note: có thể viết 1. và 2. (bỏ số 0 đi) cũng được nhưng mình thấy viết vậy không đẹp [IMG]images/smilies/biggrin.png[/IMG]

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi fbchicken
    Khi các toán hạng là số nguyên thì kết quả cũng là số nguyên
    vì vậy 2*i là nguyên, và 1/(2*i) cũng là nguyên (và sẽ ra 0)
    Vì vậy với i là số nguyên thì phải viết
    fs=(fs+1.0/(2*i));
    hoặc
    fs=(fs+1/(2.0*i));
    hoặc
    fs=(fs+1/(2.0*(float)i));
    Note: có thể viết 1. và 2. (bỏ số 0 đi) cũng được nhưng mình thấy viết vậy không đẹp [IMG]images/smilies/biggrin.png[/IMG]
    Cảm ơn bạn rất nhiều >[IMG]images/smilies/biggrin.png[/IMG]<
    Sao mình k thấy nút thanks ở đâu nhỉ :-/

 

 

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
  •