Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Lỗi khi kiểm tra 3 số chẵn cạnh nhau trong danh sách liên kết đơn?

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

    Mặc định Lỗi khi kiểm tra 3 số chẵn cạnh nhau trong danh sách liên kết đơn?

    Xem giúp em chỗ code này sao n lại k kiểm tra được ạ

    Code:
    int List::KiemTraSoChan(List& l){
    	int d;
    	for (Node* p = l.pHead; p != NULL; p = p->pNext) {
    		 d = 0;
    		if ((p->data) % 2 == 0) {
    			d++;
    		if (d == 3) {
    			cout << "Co 3 so chan dung canh nhau";
    			return d;
    		}
    		}
    		else {
    			d = 0;
    		}
    	}
    	  if(d == 0) {
    		cout << "Khong co 3 so chan dung canh nhau";
    	}
    }
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    467

    Trích dẫn Nguyên bản được gửi bởi triutuat Xem bài viết
    Xem giúp em chỗ code này sao n lại k kiểm tra được ạ

    C++ Code:
    1. int List::KiemTraSoChan(List& l){
    2.     int d;
    3.     for (Node* p = l.pHead; p != NULL; p = p->pNext) {
    4.          d = 0;
    5.         if ((p->data) % 2 == 0) {
    6.             d++;
    7.         if (d == 3) {
    8.             cout << "Co 3 so chan dung canh nhau";
    9.             return d;
    10.         }
    11.         }
    12.         else {
    13.             d = 0;
    14.         }
    15.     }
    16.       if(d == 0) {
    17.         cout << "Khong co 3 so chan dung canh nhau";
    18.     }
    19. }
    "d=0;" ở dòng 4 phải đặt trước vòng for
    Và khi d<3 sao không "return"

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

    Trích dẫn Nguyên bản được gửi bởi khoaph Xem bài viết
    "d=0;" ở dòng 4 phải đặt trước vòng for
    Và khi d<3 sao không "return"
    Sao lại phải đặt d = 0 trước vòng for ạ và sao d < 3 lại return ạ?Mong anh thông não giúp

  4. #4
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    467

    Trích dẫn Nguyên bản được gửi bởi triutuat Xem bài viết
    Sao lại phải đặt d = 0 trước vòng for ạ và sao d < 3 lại return ạ?Mong anh thông não giúp
    Nói về vòng for nhé
    Cứ mỗi lần lặp, d được gán =0, sau đó nếu chẵn d tăng lên thành 1, nếu lẻ d vẫn =0. Vào lần lặp sau, đầu tiên d lại được gán =0 , tức là bạn xóa đi kết quả đếm được trước đó. Do đó không bao giờ d>1 xảy ra, kết quả bạn đã thấy đấy.

    - - - Nội dung đã được cập nhật ngày 17-11-2019 lúc 07:09 AM - - -

    Còn nữa, bỏ dòng 16 đi, nếu d==1 hoặc d==2 thì sao
    Và, hàm của bạn trả về kiểu int, với d=3 bạn trả về giá trị d, với d!=3 bạn cũng phải trả về một số int nào đó tùy bạn, đặt return 1; ở cuối hàm chẵng hạn
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.
    Đã được chỉnh sửa lần cuối bởi khoaph : 17-11-2019 lúc 07:29 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