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ố 12 kết quả

Đề tài: Giai thừa, Tính toán giai thừa trong lập trình C

  1. #1
    Ngày gia nhập
    04 2008
    Bài viết
    1

    Mặc định Giai thừa, Tính toán giai thừa trong lập trình C

    mong cac ban giup minh giai bai tap sau.minh dang can lam.minh xin cam on nhieu:
    1.nhâp so nguyên n và tính n!
    2.nhập x,n từ bàn phím và tính:
    s=1+x+(x*x)/2!+(x*x*x)/3!+.......(x mũ n)/n!

  2. #2
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    Lời giải của mình:
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3.  
    4. long int gt(int n)
    5. {  long int t=1;
    6.     if (n<0) return -1;
    7.     while (n>0) t*=(n--);
    8.     return t;
    9. }
    10. float ham_mu(float x, int n)
    11. {
    12.       float t=1;int d=0;
    13.       if(n<0) {n=-n;d=1;}
    14.       while (n>0) {t*=x; n--;}
    15.       if (d) return (1/t); else return t;
    16.       }
    17. void ham_S()
    18. { float s=0,x;int i,n;
    19.    printf("\nNhap x: ");scanf("%f",&x);
    20.    do{
    21.      printf("Nhap n: ");scanf("%d",&n);    
    22.       }
    23.       while(n<0);
    24.    for(i=0;i<=n;i++)
    25.    s=s+ham_mu(x,i)/gt(i);
    26.    printf("\nKet qua ham s= %f",s);
    27.  }
    28.  
    29. main()
    30. {int n;
    31.       printf("\nNhap n= ");
    32.       scanf("%d",&n);    
    33.       printf("\n%d!= %ld",n, gt(n));
    34.       ham_S();
    35.       getch();
    36.       }

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

    có cần phải phức tạp như vậy không?
    dùng đệ quy cho hay mà lại gọn nữa chứ?

  4. #4
    Ngày gia nhập
    03 2008
    Bài viết
    57

    Mình nghĩ cách viết kia là hợp lý cho những người mới học vì nó dễ hiểu.
    Chỉ có điều mình xin góp ý là nên viết mỗi câu lệnh trên 1 dòng không nên vừa viết câu điều kiện vừa viết lệnh chung 1 dòng. như thế khi viết sai rất khó tìm chỗ sai để chữa lỗi và nhìn sẽ bị rối.

  5. #5
    Ngày gia nhập
    11 2007
    Nơi ở
    Hà Nội
    Bài viết
    520

    Trích dẫn Nguyên bản được gửi bởi akmmslkye Xem bài viết
    có cần phải phức tạp như vậy không?
    dùng đệ quy cho hay mà lại gọn nữa chứ?
    Trích dẫn Nguyên bản được gửi bởi thanhluan07 Xem bài viết
    Mình nghĩ cách viết kia là hợp lý cho những người mới học vì nó dễ hiểu.
    Chỉ có điều mình xin góp ý là nên viết mỗi câu lệnh trên 1 dòng không nên vừa viết câu điều kiện vừa viết lệnh chung 1 dòng. như thế khi viết sai rất khó tìm chỗ sai để chữa lỗi và nhìn sẽ bị rối.
    Thanks. Mính sẽ rút kinh nghiệm

  6. #6
    Ngày gia nhập
    04 2008
    Bài viết
    29

    Mặc định Giai thừa, Tính toán giai thừa trong lập trình C

    Mình làm bài này bằng C++, các bạn kiểm tra dùm xem nó sai cái j` mà chạy hok có được:
    C++ Code:
    1. #include<iostream>
    2. using namespace std;
    3. double fact(int n)
    4. {
    5.     if  n==0 return 1;
    6.     else return n*(fact(n-1));
    7. }
    8. long pow(double x, int t);
    9. main()
    10. {  
    11.     double x,s=0;
    12.     cout<<"nhap x, n";
    13.     cin>>x>>n;
    14.     for(int i=1; i<=n; i++)
    15.     {
    16.         for(int j=1; j<=n; j++)
    17.         {
    18.             s=s+ pow(x,j)/fact(i);
    19.         }
    20.         cout<<Tong la<<s<<endl;
    21.     }
    22. }
    Đã được chỉnh sửa lần cuối bởi itthuyloi : 11-05-2008 lúc 09:36 PM. Lý do: nham
    Bán Sim ngày sinh cho ace nào sinh ngày 9/2/889 nè, viettel nha 09.72.76.9.2.89 cần thì liên hệ 01263.599.866 nhé!

  7. #7
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    440

    Mình nhìn thấy 3 lỗi:
    - Sai cú pháp trong khai báo hàm pow(). Phải cung cấp kiểu cho n.
    - Sau khai báo pow() thiếu dấu ngắt câu ( ; )
    - Biến n trong main() không khai báo.
    Đã được chỉnh sửa lần cuối bởi Ada : 11-05-2008 lúc 12:23 AM.

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

    Nhưng mà biến n đã khai báo rùi ở trên mà! Thế thì có thể dùng chung mà!Đúng là hàm pow thiếu(do đánh máy sai)! Còn biến n trong hàm main khai báo nữa thì liệu nó có thừa không bạn!Bạn có thể cho mình một đoạn code hoàn chỉnh luôn được khống! Cái này mình lơ mơ lắm chẳng bik j` cả! Thanks alot!
    Đã được chỉnh sửa lần cuối bởi itthuyloi : 11-05-2008 lúc 09:37 PM.
    Bán Sim ngày sinh cho ace nào sinh ngày 9/2/889 nè, viettel nha 09.72.76.9.2.89 cần thì liên hệ 01263.599.866 nhé!

  9. #9
    Ngày gia nhập
    01 2008
    Nơi ở
    Rất nhiều sóng gió
    Bài viết
    440

    Mình quẳng vào bộ biên dịch báo gần 10 lỗi. Đã chữa cho bạn rồi đây:
    C++ Code:
    1. #include<iostream>
    2. #include<math.h>
    3.  
    4. using namespace std;
    5. double fact(int n)
    6. {
    7.     if(n==0) return 1;
    8.     else return n*(fact(n-1));
    9. }
    10. //long pow(double x, int t);
    11. void main()
    12. {  
    13.     double x,s=0;
    14.     int n;
    15.     cout<<"nhap x, n";
    16.     cin>>x>>n;
    17.     for(int i=1; i<=n; i++)
    18.     {
    19.         for(int j=1; j<=n; j++)
    20.         {
    21.             s=s+ pow(x,j)/fact(i);
    22.         }
    23.         cout<<"Tong la"<<s<<endl;
    24.     }
    25. }
    Đã được chỉnh sửa lần cuối bởi Ada : 11-05-2008 lúc 10:15 PM.

  10. #10
    Ngày gia nhập
    06 2007
    Nơi ở
    UIT
    Bài viết
    44

    Trích dẫn Nguyên bản được gửi bởi itthuyloi Xem bài viết
    Nhưng mà biến n đã khai báo rùi ở trên mà! Thế thì có thể dùng chung mà!Đúng là hàm pow thiếu(do đánh máy sai)! Còn biến n trong hàm main khai báo nữa thì liệu nó có thừa không bạn!Bạn có thể cho mình một đoạn code hoàn chỉnh luôn được khống! Cái này mình lơ mơ lắm chẳng bik j` cả! Thanks alot!
    Các hàm toán học bạn nên tham khảo trong MSDN vì nó đã có sẵn bạn khỏi phải xây dựng làm gì

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

  1. Chung cư Đại Thanh giá rẻ ở ngay giá gốc sốc 10 triệu
    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: 2
    Bài viết cuối: 13-11-2014, 01:47 PM
  2. Atlazbooks giảm giá 25% nhiều đầu sách nhân ngày 8-3
    Gửi bởi pipilazy 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: 25-02-2012, 11:35 PM

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