Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: Bài tập C | Tính tổng s=1+(1/2)^1+(1/2)^2+...+(1/2)^n??

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

    Mặc định Bài tập C | Tính tổng s=1+(1/2)^1+(1/2)^2+...+(1/2)^n??

    đề: tính tổng s=1+(1/2)^1+(1/2)^2+...+(1/2)^n

    C Code:
    1. #include <stdio.h>
    2.  
    3. #include <math.h>
    4.  
    5. #include<conio.h>
    6.  
    7. float main ()
    8.  
    9. {
    10.  
    11.           int i=0;
    12.             int n;
    13.  
    14.            float s=1;
    15.  
    16.            printf("nhap vao so n: ");
    17.  
    18.            scanf("%d",&n);
    19.  
    20.            for (i=0; i<= n; i++)
    21.  
    22.           {
    23.              
    24.               s=s+pow(0.5,n) ;
    25.  
    26.          }
    27.  
    28.               printf ("tong la :%f\n",s);
    29.  
    30. }

    Nó chạy tốt không lỗi, không cảnh báo nhưng mà kết quả lại sai.(chẳng hạn n=3 kết quả là 1.500000)
    Anh em giúp giùm, thanks.
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 20-03-2009 lúc 05:28 PM.

  2. #2
    Ngày gia nhập
    02 2009
    Bài viết
    56

    bạn sửa lại chỗ s=s+pow(0.5,n) này thanh s=s+pow(0.5,i) i sưa lại thành i=1 do ban
    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <math.h>
    4. void main()
    5. {
    6.     int a,i=1;
    7.         float b=1;
    8.     printf ("nhap so");
    9.     scanf("%d",&a);
    10.     while(i<=a)
    11.     {
    12.         b=(b+pow(0.5,i));
    13.     i++;
    14.     }
    15.         printf ("ket qua la %f",b);
    16. }
    *Vui lòng bỏ code vào tag code khi gửi bài viết
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 20-03-2009 lúc 05:29 PM.

  3. #3
    Ngày gia nhập
    12 2008
    Bài viết
    17

    Bài của Trung được đấy!
    Mình cung đang cần!

  4. #4
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    tính tổng s=1+(1/2)^1+(1/2)^2+...+(1/2)^n
    Thử cái này đi bạn.
    C Code:
    1. {
    2.      float s = 1, t = 0.5;
    3.      for (int i=1; i<=n; i++)
    4.      {
    5.           s += t;
    6.           t *= 0.5;
    7.      }
    8. }

  5. #5
    Ngày gia nhập
    03 2009
    Bài viết
    48

    Trích dẫn Nguyên bản được gửi bởi fanmaytinh Xem bài viết
    đề: tính tổng s=1+(1/2)^1+(1/2)^2+...+(1/2)^n

    C Code:
    1. #include <stdio.h>
    2.  
    3. #include <math.h>
    4.  
    5. #include<conio.h>
    6.  
    7. float main ()
    8.  
    9. {
    10.  
    11.           int i=0;
    12.             int n;
    13.  
    14.            float s=1;
    15.  
    16.            printf("nhap vao so n: ");
    17.  
    18.            scanf("%d",&n);
    19.  
    20.            for (i=0; i<= n; i++)
    21.  
    22.           {
    23.              
    24.               s=s+pow(0.5,n) ;
    25.  
    26.          }
    27.  
    28.               printf ("tong la :%f\n",s);
    29.  
    30. }

    Nó chạy tốt không lỗi, không cảnh báo nhưng mà kết quả lại sai.(chẳng hạn n=3 kết quả là 1.500000)
    Anh em giúp giùm, thanks.
    s=s+pow(0.5,n) ; <<< sai chỗ n nè
    sửa lại là i => s=s+pow(0.5,i) ;

  6. #6
    Ngày gia nhập
    03 2009
    Bài viết
    3

    Mặc định Bài tập C | Tính tổng s=1+(1/2)^1+(1/2)^2+...+(1/2)^n??

    Mình chưa hiểu rõ chức năng của hàm pow().Mong các bạn nói rõ.Mình cảm ơn!

  7. #7
    Ngày gia nhập
    01 2009
    Nơi ở
    Hà Nội
    Bài viết
    205

    double pow(double a,double b) -> tương đương với a^b (a mũ b).

  8. #8
    Ngày gia nhập
    04 2009
    Bài viết
    5

    vòng lặp của bạn sai
    for(i=1,i<=n,i++)
    {
    ...
    }

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

    vòng lặp của bạn sai
    for(i=1,i<=n,i++)
    {
    ...
    }
    cái này đúng rồi sai gì

    Cái này mình mới viết bạn xem thữ nha
    #include<stdio.h>
    void main()
    {
    int n;
    do
    {
    printf("- Nhap n :\n");
    scanf("%d",&n);
    }while(n<=0);
    double S=1;
    for(int i=1;i<=n;i++)
    {
    float K=2;
    double I=1.0/(K*i);
    S+=I;
    }
    printf(" Ket qua tong = %lf :\n",S);
    }

  10. #10
    Ngày gia nhập
    03 2009
    Nơi ở
    TP HCM
    Bài viết
    20

    cái chỗ dòng cuối cùng phải như vậy mới được chứ:
    printf("Ket qua Tong=%.2f",S);

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