30/09/2018, 21:29

Sự khác nhau của if(p->key_=x) và if(p->key_==x) trong c++

mình đã làm trong danh sách liên kết trong hàm find_node nhưng kết quả khác nhau,
ai có thể giải thích ko

Sơn viết 23:34 ngày 30/09/2018

nếu bạn dùng if(x=y) sẽ gán giá trị của y cho x, và se gây ra lỗi
còn if(x==y) đơn giản dùng để so sánh xem x có bằng y hay không.

Phạm Thanh Duy viết 23:34 ngày 30/09/2018

x=y là phép gán y cho x còn x==y là phép so sánh x với y bằng nhau hay không, if(x=y) sẽ bị lỗi

Tien Tran viết 23:44 ngày 30/09/2018

chưa chắc

node *tim_node(node * head, int x){
	node *p = head;
	
	
	while (p->key_!=NULL)
	{
		if (p->key_== x){
		
			return p  ;
			p = p->next_;
		}
				return NULL;
		}
		}

thì nó chạy lỗi
còn nếu mình sửa thành
if (p->key_= x) nó chạy hoàn hảo
là sao

Củ Chuối viết 23:37 ngày 30/09/2018

sao có dấu cách giữa 2 dấu = v bạn??

Tien Tran viết 23:33 ngày 30/09/2018

mình up lên bấm bậy đó mà, nhưng cũng vậy thui

Tien Tran viết 23:33 ngày 30/09/2018

mình đổi tên topic cho rõ hơn

Tien Tran viết 23:35 ngày 30/09/2018

ko ai biết à

viết 23:40 ngày 30/09/2018

while (p->key_!=NULL)
{
if (p->key_== x){

		return p  ;
		p = p->next_;
	}
			return NULL;
	}
	}

Điều kiện vòng while sai, phải là p!=NULL. p=p->next_; cũng phải ở ngoài if. Hoặc là làm thế này cho gọn:

while(p!=NULL&&p->key_!=x){
      p=p->next_;
}
return p;
Tien Tran viết 23:39 ngày 30/09/2018

cũng chạy ra lỗi thui điền head thì dc chứ các node trong link list thì ko ra

Tien Tran viết 23:31 ngày 30/09/2018

code ở đây bạn thử thay đổi theo ý và truyền tham số khác head xem

đầu tiên đây ko phải là bt mà chỉ là vd làm cho hiểu, mình chạy vẫn dc, nhưng tham số truyền vào thì phải là head thì cái hàm tim_node nó mới duyệt dc, các node còn lại duyệt ko ra , ae cho ý kiến, ko cần sửa code, chỉ cần nói lỗi sai logic là dc. code : #include<iostream> using namespace std; class node{ public: int key_; node * next_; }; node * create_node(int x){ node * n; n = new node; n->key_ = x; n->next_ = NULL; return n; } node *tim_node_cuoi(node*head){ node *p = head; if (…

Tien Tran viết 23:34 ngày 30/09/2018

cảm ơn ae

Bài liên quan
0