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

Đề tài: Vòng lặp for không nhận giá trị

  1. #1
    Ngày gia nhập
    05 2010
    Nơi ở
    In my heart /Hà Nội VietNam Capital
    Bài viết
    27

    Mặc định Vòng lặp for không nhận giá trị

    Mình làm bài C nhập môn , tính tổng số lẻ giữa 2 số nhập vào . Trường hợp nhập số thứ nhất bé hơn số thứ 2 thì hiện ra kết quả đúng. Còn trường hơp số thứ 1 lớn hơn số thứ 2 thì lại sai. Mọi người xem giúp mình sai ở đâu với.
    C Code:
    1. #include<stdio.h>
    2.     #include<conio.h>
    3.     int main()
    4.     {
    5.         int i;
    6.         int num1;
    7.         int num2;
    8.         int j=0;
    9.         printf("Number 1:");
    10.         scanf("%d",&num1);
    11.         printf("Number 2:");
    12.         scanf("%d",&num2);
    13.         if(num1<num2)
    14.         {
    15.              for(i=num1;i<=num2;i++)
    16.             {
    17.                 if(i%2==1)
    18.                 {
    19.                     j=i+j;
    20.                 }
    21.             }
    22.             printf("Tong cac so le giua 2 so vua nhap la : %d",j);
    23.         }
    24.         else
    25.         {
    26.              for(i=num2;i>=num1;i--)
    27.             {
    28.                 if(i%2==1)
    29.                 {
    30.                     j=i+j;
    31.                 }
    32.             }
    33.                printf("Tong cac so le giua 2 so vua nhap la : %d",j);
    34.  
    35.         }
    36.         return 0;
    37.     }
    Start from beginning .
    Your life is what you do daily and weekly .

  2. #2
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    for(i=num1;i<=num2;i++)
    for(i=num2;i>=num1;i--)

    bạn hãy nêu sự khác nhau giữa 2 dòng này
    HT117-5277

  3. #3
    Ngày gia nhập
    05 2010
    Nơi ở
    In my heart /Hà Nội VietNam Capital
    Bài viết
    27

    Trích dẫn Nguyên bản được gửi bởi treatmaster Xem bài viết
    for(i=num1;i<=num2;i++)
    for(i=num2;i>=num1;i--)

    bạn hãy nêu sự khác nhau giữa 2 dòng này
    Dòng thứ nhất cho i chạy +1 bắt đầu từ num1 cho đến num2.(N)
    Dòng thứ 2 cho i giảm -1 cho đến khi bằng num2 .
    Start from beginning .
    Your life is what you do daily and weekly .

  4. #4
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Sai, đọc code cái vòng thứ hai lại cho kỹ

  5. #5
    Ngày gia nhập
    05 2010
    Nơi ở
    In my heart /Hà Nội VietNam Capital
    Bài viết
    27

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Sai, đọc code cái vòng thứ hai lại cho kỹ
    Uh . Thanks a lot. mình sửa được rồi . Lẽ ra phải là
    Code:
    i = num1; i>=num2;i--
    Thế bạn giải thích thêm cho mình đoạn code Fibonaci này không :
    C Code:
    1. while(n>0)
    2.     {
    3.         printf("%d ,",fib1);
    4.         fib2 = fib2+ fib1;
    5.         fib1 = fib2 - fib1;
    6.         n--;
    7.     }

    Cả bài đây
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.     int n =10;
    6.     int fib1,fib2;
    7.     fib1 = fib2 = 1;
    8.  
    9.     while(n>0)
    10.     {
    11.         printf("%d ,",fib1);
    12.         fib2 = fib2+ fib1;
    13.         fib1 = fib2 - fib1;
    14.         n--;
    15.     }
    16.     return 0;
    17. }
    Start from beginning .
    Your life is what you do daily and weekly .

  6. #6
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    Mặc định Vòng lặp for không nhận giá trị

    Trích dẫn Nguyên bản được gửi bởi ToNy_ Xem bài viết
    Uh . Thanks a lot. mình sửa được rồi . Lẽ ra phải là
    Code:
    i = num1; i>=num2;i--
    Thế bạn giải thích thêm cho mình đoạn code Fibonaci này không :
    C Code:
    1. while(n>0)
    2.     {
    3.         printf("%d ,",fib1);
    4.         fib2 = fib2+ fib1;
    5.         fib1 = fib2 - fib1;
    6.         n--;
    7.     }

    Cả bài đây
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int main()
    4. {
    5.     int n =10;
    6.     int fib1,fib2;
    7.     fib1 = fib2 = 1;
    8.  
    9.     while(n>0)
    10.     {
    11.         printf("%d ,",fib1);
    12.         fib2 = fib2+ fib1;
    13.         fib1 = fib2 - fib1;
    14.         n--;
    15.     }
    16.     return 0;
    17. }
    bạn cứ chạy tay đi rồi sẽ hiểu
    HT117-5277

  7. #7
    Ngày gia nhập
    05 2010
    Nơi ở
    In my heart /Hà Nội VietNam Capital
    Bài viết
    27

    Trích dẫn Nguyên bản được gửi bởi treatmaster Xem bài viết
    bạn cứ chạy tay đi rồi sẽ hiểu
    Hix mình chưa chạy thử = tay bao giờ . Bạn có thể hướng dẫn mình ko . Mình dùng Codeblocks.
    Start from beginning .
    Your life is what you do daily and weekly .

  8. #8
    Ngày gia nhập
    05 2010
    Nơi ở
    In my heart /Hà Nội VietNam Capital
    Bài viết
    27

    Trích dẫn Nguyên bản được gửi bởi treatmaster Xem bài viết
    bạn cứ chạy tay đi rồi sẽ hiểu
    Mình chạy được = F4 rồi nhưng chưa rõ chạy ntn .
    Start from beginning .
    Your life is what you do daily and weekly .

  9. #9
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    ý mình là chạy trên giấy á.chạy từng bước theo thuật toán rồi bạn sẽ hiểu nó đang làm gì
    HT117-5277

  10. #10
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Hai giai đoạn chạy tay:

    1. Vẽ vấn đề trên giấy rồi dùng tay theo dõi xem vấn đề có thể được giải quyết ra sao. Một vấn đề phức tạp có thể đòi hỏi vài lần vẽ và theo dõi.

    2. Sau khi code xong, in ra giấy rồi theo dõi từng dòng, xem khi có dữ liệu thì code sẽ cho ra gì ở từng dòng (gần giống như debug, nhưng tỉ mỉ hơn)

    Chỉ có những bậc trí tuệ thông thái vượt bực mới có khả năng bỏ qua giai đoạn chạy tay. Nếu bạn không phải là hạng này mà không muốn chạy tay thì không nên theo đuổi LT nữa.

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

  1. Kỹ thuật C++ Nhập và gán 1 kí tự trong vòng lặp sao cho khi không nhập kí tự thì vòng lặp lại chạy tiếp.
    Gửi bởi note194 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 12-08-2013, 09:11 PM
  2. Bài tập C++ sử dụng vòng lặp while để in hình chữ nhật
    Gửi bởi missyoune trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 07-12-2011, 06:14 AM
  3. Tính x^n với số vòng lặp là ít nhất, giúp mình
    Gửi bởi chjpcoj trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 29
    Bài viết cuối: 07-03-2011, 07:22 PM
  4. nhập số 1 hoài thì nó ko thoát khỏi vòng lặp
    Gửi bởi sieuthi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 09-02-2011, 10:37 AM
  5. Bài toán dslk...Lỗi vòng lặp nhập điểm?
    Gửi bởi kuhoang0512 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 06-12-2010, 05:44 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