Thông báo

Collapse
No announcement yet.

Người yêu em giận vì em không thoát được vòng lặp for bên trong ???

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Người yêu em giận vì em không thoát được vòng lặp for bên trong ???

    Trước hết xin lỗi các bác , cái tip hơi hót nhưng mà như thế mới câu được các cao thủ vào giúp ! sau vụ này bị ban nịck cũng được.
    Khỏi vòng vèo mất thời gian quý của các bác, em xin trình bày luôn bài toán của em:
    code lỗi như sau:


    unsigned int i,j; // bien xac dinh = phan cung

    ...
    void error() // day la chỗ em cần giúp đỡ
    unsigned int m,k; // khai bao bien so nguyen khong am theo kieu int

    for (k=0;k<1;k+1) // lap 1 lan duy nhat k=0
    { i=i>0 ? i-1 : 7;
    for (m=0;m<4;m+1) // lap 4 lan theo m={0,1,2,3)
    { j=j<7 ? j+1 : 0;
    }
    }

    Bài toán đặt ra như sau : biến j và i là một biến luôn quay vòng theo một chiều nhất định (giá trị thay đổi từ 0-7 sau đó lặp lại).
    Giá trị ban đầu của j,i do phần cứng xác định.(tức là khởi tạo giá trị là random từ 0-7)
    Nói tóm lại là trong đoạn code này không được động đến 2 em i,j.

    Em nạp thêm 2 biến là m và k.Mục đích của em viết đoạn code này là :khi trị số của i tăng/giảm 1 lần ị, thì j phải tăng/giảm 4 lần

    Em gán i thay đổi theo vòng lặp của k ( cho k chạy 1 lần duy nhất)
    Tương tự, gán j thay đổi theo vòng lặp của m ( m biến thiên qua 4 lần )

    Vấn đề là ở chỗ nó không thoát được vòng lặp bên trong.
    Em mô phỏng với proteus thì thấy báo không thoát được vòng lặp của biến m ! Nó cứ quay tít trong vòng lặp for của m.

    Em xin hết, kính mong các cao thủ vào giúp đỡ !

  • #2
    ----------------------------------
    Last edited by trieuphong; 24-11-2011, 12:17.

    Comment


    • #3
      chào bạn: ko phải là người iu bạn giận đâu mình chưa đọc hết bài của bạn nhưng nhìn mấy câu lệnh đủ để biết là vòng for của bạn không bao giờ thoát ra nổi vì :

      for (k=0;k<1;k+1) // lap 1 lan duy nhat k=0
      { i=i>0 ? i-1 : 7;
      for (m=0;m<4;m+1) // lap 4 lan theo m={0,1,2,3)
      { j=j<7 ? j+1 : 0;
      }
      }

      chỗ mà lập 4 lần theo biến m ấy diều kiện đã ok nhưng sau điều kiện bạn cho biên tăng lên nó sẽ ko lưu vào biến m đê bạn so sánh dk m<4
      bạn sửa lại như sau :
      for (m=0;m<4;m=m+1)
      hoạc
      for (m=0;m<4;m++)

      biến k cũng như vậy: như vậy sau mỗi vòng lập m sẽ tăng lên =4 thì người iu bạn sẽ hết giận hehe
      chúc thành công !
      Kết Nối Dân Kỹ Thuật tại facebook để Trao đổi - học hỏi

      Thích chém gió bốn phương zô đây

      Comment


      • #4
        Cảm ơn thaichiendt !
        Em đã hiểu và đã sửa theo như đúng ý bác và đã chạy tốt.
        Thanks so much.

        Comment

        Về tác giả

        Collapse

        trieuphong Tìm hiểu thêm về trieuphong

        Bài viết mới nhất

        Collapse

        Đang tải...
        X