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

Đề tài: Tuổi cha và con(Code sai chỗ nào ??)

  1. #1
    Ngày gia nhập
    12 2007
    Bài viết
    12

    Mặc định Tuổi cha và con(Code sai chỗ nào ??)

    Có bài toán thế này
    Nhập tuổi cha và con ,biết cha hơn con ít nhất 25 tuổi và tuổi cha lớn hơn 2 lần tuổi con.Từ tuổi đã nhập viết ct tính xem sau bao nhiêu năm tuổi cha gấp 2 lần tuổi con.

    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    int ch,c,n,d;
    void main()
    {
    do
    {
    printf("Nhap tuoi cha :");
    scanf("%d",&ch);
    printf("NHap tuoi con :");
    scanf("%d",&c);
    }
    while(ch-c<25&&ch<=2*c);
    n=0;
    while(d!=ch)
    {
    n++;
    ch=ch+n;
    c=c+n;
    d=2*c;
    }
    printf("Sau %d nam tuoi cha la %d gap 2 lan tuoi con la %d",n,ch,c);
    getch();
    }
    Mình viết chương trình vẫn chạy nhưng kết quả lại không đúng.Ví dụ mình nhập
    tuổi cha =50
    tuổi con =5
    Kết quả là sau -30896 năm tuổi cha là 90 gấp 2 lần tuổi con là 45 (chỗ này đúng)

  2. #2
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Bạn chưa có khởi gán cho biến d thôi . Với lại giải thuật cũng ko đúngh nữa . Ko phải là cứ mỗi năm tuổi cha và con lại cộng cho n mà là cộng cho 1 thôi . Lần sau nhớ đọc code cho kỹ 1 tí nhé . Thân .
    Đã được chỉnh sửa lần cuối bởi sieuphuong : 17-01-2008 lúc 04:30 PM.

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

    Khởi gán cho biến d nghĩa là sao.Mình đã khai báo biến d kiểu int rồi mà.Lúc đầu mình không dung biến d mà dùng trực tiếp ch!=2*c luôn. Và kết quả vẫn sai.Cái quan tâm ở đây là vì sao n++ mà kết quả tính ra n là số âm

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

    Chào bạn, sửa code chỗ này lại là được:
    Code:
    while(d!=ch)
    {
    	n++;
    	ch=ch++;
    	c=c++;
    	d=2*c;
    }
    Sau mỗi năm thì tuổi cha, con tăng 1 chứ ko phải tăng bằng tổng số năm =))

  5. #5
    Ngày gia nhập
    12 2007
    Bài viết
    12

    Trích dẫn Nguyên bản được gửi bởi error Xem bài viết
    Chào bạn, sửa code chỗ này lại là được:
    Code:
    while(d!=ch)
    {
    	n++;
    	ch=ch++;
    	c=c++;
    	d=2*c;
    }
    Sau mỗi năm thì tuổi cha, con tăng 1 chứ ko phải tăng bằng tổng số năm =))
    Đúng rồi.Mình quên mất.Do làm n tăng 1 đơn vị nên nhầm lẫn đem cộng vào tuổi cha và con là tuổi cha và con cũng tăng 1 đơn vị.Thanks nhìu

  6. #6
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Mặc định Tuổi cha và con(Code sai chỗ nào ??)

    Sao phải dùng vòng lặp nhỉ, giả sử tuổi cha là d, tuổi con là c
    Giả sử sau n năm, cha gấp 2 tuổi con tức là
    d + n = (c+n)* 2
    <-> d = 2 c + n
    <-> n = d - 2*c

    --> sau n năm, tuổi cha gấp 2 tuổi con

    Thử vài ví dụ xem nào:
    d = 30
    c = 6 - > n = 18
    48 = 2*24 -> đúng

    d = 50
    c = 5 -> n = 40
    90 = 2*45 -> đúng

  7. #7
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Bạn metal làm đúng nhưng chắc chắn các cụ sẽ chấm bài bạn 0 vì lý do các cụ muốn bạn giải bài này = vòng lặp. Các cụ ở đây chính là các giáo viên Tin học thời nay đấy, chán, 1 bài trẻ con mà phải dùng vòng lặp để giải, ko có 1 cái ví dụ nào cho vòng lặp ra hồn cả.

  8. #8
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Ví dụ à, nhiều lắm:

    - Tính tổng các số nguyên tố nằm trong khoảng [a,b] ( a<=b)
    - Tính n giai thừa
    - Kiểm tra một số có phải số nguyên tố hay ko?

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

    Tiếc là các cụ ko nghĩ ra được như thế, các cụ bảo ta hãy dùng vòng lặp for giải 1 số bài toán dân gian như 100 trâu 100 bó cỏ, tuổi cha con ^^ Ko đỡ được. Có lẽ các cụ học Tin rồi quên Toán.

  10. #10
    Ngày gia nhập
    01 2008
    Bài viết
    22

    sao mình nhập tuổi cha với tuổi con xong thì chương trình đứng luôn.Ko bít tại sao,mọi người giúp với!!

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

  1. Tại sao lại bỏ Store Proceduce nếu code theo hướng Code First trong MVC3
    Gửi bởi rogerminh2401 trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 5
    Bài viết cuối: 02-11-2012, 08:22 PM
  2. Trả lời: 5
    Bài viết cuối: 27-04-2012, 07:51 PM
  3. compiler Warning: Unreachable code và chạy sai trong khi code đúng. Vì sao?
    Gửi bởi lovemoney trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 19
    Bài viết cuối: 19-01-2012, 10:02 PM
  4. Bài tập C++ Nhập code và name sv vào in ra thì name in đúng nhưng code thì in ra cả 2 code lẫn name
    Gửi bởi spacy0212 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 27-09-2011, 08:47 AM
  5. Code quản lý sinh viên bằng danh sách lối vòng. Giúp mình thay đổi code kế thừa?
    Gửi bởi caocanha trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 04-05-2009, 03:39 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