Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: fix lỗi dùm em bài đệ qui này với( cần gấp)

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

    Wink fix lỗi dùm em bài đệ qui này với( cần gấp)

    em đang làm một bài đệ quy tính căn bậc hai bài này:
    S= căn bậc hai của (1+căn bậc hai của(2+.....căn bậc hai của(n)))

    đây là code của em mong mấy anh sửa giúp
    Code:
    #include <conio.h>
    #include <stdio.h>
    #include <math.h>
    float can(int n)
    {
         return pow(n,(float)1/2);
    }
    
    float canhet(int &n)
    {
    	if(n==1) return pow(1+can(n),(float)1/2);
    	return pow(canhet(n-1)+can(n),(float)1/2);
    }
    
    void main()
    {
    	clrscr();
    	int n;
    	float kq;
    	printf("Nhap n: ");
    	scanf("%d",&n);
    	kq=canhet(n);
    	printf("Ket qua: %.2f",kq);
    	getch();
    
    }

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Lỗi có 2 loại : runtime và lỗi biên dịch. Mình ko biết bạn kêu fix lỗi nào nữa. Mình fix lỗi biên dịch rồi đó :

    C++ Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. #include <math.h>
    4.  
    5. double can(int n)
    6. {
    7.      return pow(n,(float)1/2);
    8. }
    9.  
    10. double canhet(int n)
    11. {
    12.     if(n==1)
    13.         return pow(1+can(n),0.5);
    14.    
    15.     return pow(canhet(n-1)+can(n),0.5);
    16. }
    17.  
    18. void main()
    19. {
    20.     clrscr();
    21.     int n;
    22.     double kq;
    23.     printf("Nhap n: ");
    24.     scanf("%d",&n);
    25.     kq=canhet(n);
    26.     printf("Ket qua: %.2f",kq);
    27.     getch();
    28. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    vậy thì còn kết quả nó ra sai
    vd: nhập vào 2 thì nó phải ra 1.553
    mà kết quả trong bài thì nó ra 1.85
    em ko biết nó sai chỗ nào mong anh sửa lỗi dùm

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Cách sửa này ko đẹp lắm vì cần truyền 2 tham số vào hàm đệ quy, tuy nhiên nó giải quyết tốt vấn đề :

    C++ Code:
    1. #include <conio.h>
    2. #include <stdio.h>
    3. #include <math.h>
    4.  
    5. double canhet(int i, int n)
    6. {
    7.     if (i == n)
    8.         return sqrt(n);
    9.     else
    10.         return sqrt(i + canhet(i + 1, n));
    11. }
    12.  
    13. void main()
    14. {
    15.     double kq;
    16.     int n;
    17.  
    18.     clrscr();
    19.     printf("Nhap n: ");
    20.     scanf("%d",&n);
    21.     kq = canhet(1,n);
    22.     printf("Ket qua: %.2lf",kq);
    23.     getch();
    24. }
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

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

    Cám ơn bạn nhiều

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

  1. Lập trình C++ coi dùm minh bài code sai ở chỗ nào và sữa dùm mình với
    Gửi bởi hchuy94 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 02-09-2013, 10:16 AM
  2. Lập trình C tìm lỗi dùm em với
    Gửi bởi dammelaptrinh trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 20-12-2011, 12:23 AM
  3. Nhớ mấy anh đánh giá dùm CV của em
    Gửi bởi tomahutbui trong diễn đàn Thắc mắc chung
    Trả lời: 6
    Bài viết cuối: 10-06-2011, 06:01 PM
  4. Mình mới vừa học lập trình ,xin fix lỗi dùm mình và cho mình hỏi 1 vải điều .
    Gửi bởi ANHCHANG60GIAY trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 30-04-2010, 11:40 AM
  5. xem dùm bài đệ quy t=x^n??
    Gửi bởi #include# trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 10-04-2008, 11:41 AM

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