bài này hình như thầy có cho mình làm nà và đã sửa nhưng cuối cùng mất tập.....mốt thi tốt nghiệp ra lại chắc cắn răng tự vẫn...::(
có ai có thể debug cái code của tôi đc ko... nội dung là tìm chu trình hamilton bằng ma trận kề cách thức thì là chọn 1 đỉnh bất kì rồi tìm chu trình xuất phát từ đỉnh đó ngôn ngữ C++: #include<conio.h> #include<stdio.h> #include<iostream.h> int a[10][10],n=0; int d=0,x=1,dx[10],t=1,h[10],check[10]; void nhap(); void hien(); void hamlist(); void canhke(); void main() { // clrscr(); nhap(); hien(); hamlist(); getch(); } //------------------------------------------------------------------------- void nhap() { do { cout<<"\n Nhap vao so dinh cua do thi:"; cin>>n; if ((n>10)||(n<3)) cout<<"\n Chuong trinh chi ho tro toi da 10 dinh.\n Hoac ban da nhap so dinh < 3.\n Moi nhap lai."; }while ((n>10)||(n<3)); cout<<"\n Chi can nhap nua tren cua ma tran."; for (int i=1;i<n+1;i++) for (int j=n;j>i-1;j--) { cout<<"\n Nhap vao a["<<i<<"]["<<j<<"]:"; cin>>a[j]; a[j]=a[j]; if (i==j) { a[j]=0; a[j]=0; } if (a[j]>0) { a[j]=1; a[j]=1; } } } //--------------------------------------------------------- void hien() { for (int i=1;i<n+1;i++) { for (int j=1;j<n+1;j++) cout<<a[j]; cout<<"\n"; } } //-------------------------------------------------------- void hamlist() { do { cout<<"\n Nhap vao dinh dau tien cua chu trinh:"; cin>>x; if ((x<=0)||(x>n)) cout<<"\n Dinh nay khong co trong do thi."; }while((x<=0)||(x>n)); for (int m=1;m<n+1;m++) { check[m]=0; dx[m]=0; } t=x; h[0]=x; canhke(); for (int k=0;k<n;k++) cout<<"--"<<h[k]; } void canhke() { for (int i=t;i>0;i--) { check=1; for (int j=1;j<n+1;j++) if ((a[j]==1)&&(check[j]==0)&&(i!=dx[j])) { check[j]=1; d=d+1; h[d]=j; t=j; dx=0; canhke(); } else if (j==n) { check=0; dx[j]=i; d=d-1; } } } cái hàm này vẫn chưa tìm đc cách debug
ặc ặc, bác học trường nào thế hả, môn lý thuyết đồ thị phải ko bác tự debug ko được hay sao mà nhờ, nhờ thì sao chỉ để debug hàm nào bác chỉ cần F9 (break point) chỗ đó rồi F5 xong cứ nhấn F10 hoặc F11 tùy mục đích coi, ngó qua cửa sổ watch hoặc local mà xem kq đã là dân lập trình ít ra cũng phải tự debug để sau này còn sửa code của người khác nữa
chuẩn đấy...lỗi thuật toán và ko thể đệ quy về đúng chu trình đc....còn debug đc thì tôi đã chả phải hỏi...haizzzzzz mà hôm nay trả bài rồi....copy cái bài bên csth....nhưng vẫn đau lòng vì cái code của mình......
Debug đệ quy cần tưởng tượng 1 chút về cây đệ quy mà mình đang xử lí. Nếu bạn nắm vững về mô hình đệ quy thì sẽ thấy debug nó rất bt thôi
mỗi tội mình lại khá ngu về cái này ......trước giờ toàn tìm mọi cách để lập trình thành tuyến tính :(
ai học môn cấu trúc dl thì giúp mình bài này với Mã: #include <stdio.h> #include <conio.h> #include <stdlib.h> typedef struct p { int info; struct p *next; } node ; typedef struct { node *head; node *tail; } list ; void tao_list_trong (list &l) { l.head=NULL; l.tail=NULL; } node *taonut (int x) { node *p; p=(node*)malloc(sizeof(node)); if (p!=NULL) { p->info=x; p->next=NULL; } return p; } void them_vao_list ([COLOR="lime"]list l[/COLOR],node *p) { [COLOR="Lime"]if (l.head=NULL)[/COLOR] { l.head=p; l.tail=p; } else { l.tail->next=p; l.tail=p; } } void xuat (list l) { node *p; p=l.head; while (p!=NULL) { printf ("%5d",p->info); p=p->next; } } main () { node *p; list l; int i,x,n; printf ("\n nhap vao so nut ban muon co trong danh sach :"); scanf ("%d",&n); tao_list_trong(l); while (n!=0) { printf ("\n nhap vao gia tri can gan cho nut :"); scanf ("%d",&x); p=taonut(x); them_vao_list (l,p); n--; } xuat(l); getch(); } Ko biết có bị lỗi gì mà nó vẫn chạy đc,nhưng giả sử nhập số nút là 3, thì khi điền giá trị cho nút,máy báo lỗi Edit : ngủ 1 giấc dậy,tinh thần thoải mái thì cũng sửa đc lỗi,thks bạn nào có ý định trả lời giúp mình nhé ^^
Sorry mod, ko biết hỏi ở đâu đành post ở đây vậy Mỗi lần mở PTS ra là nó lại thông báo thế này Cậu nào giúp tớ với :(
Bài tập liên quan tới danh sách liên kết đơn có các khai báo sau : Mã: typedef struct p { int info; struct p *next; } node ; typedef struct { node *head; node *tail; } list ; void tao_list_trong (list &l) { l.head=NULL; l.tail=NULL; } node *taonut (int x) { node *p; p=(node*)malloc(sizeof(node)); if (p!=NULL) { p->info=x; p->next=NULL; } return p; } Bây giờ muốn xóa 1 nút trong danh sách Mã: int remove (list &l,node *xoa) { int kt=0; node *tim=l.head; node *sau=l.head; while (tim!=NULL) { if (tim->info==xoa->info) { kt=1; break; } else { sau=tim; tim=tim->next; } if (kt==0) return 1; else { if (sau==l.head) { l.head=l.head->next; free(tim); } else if (tim->next==NULL) { sau->next=NULL; free(tim); } else { sau->next=tim->next; free(tim); } return 0; } } } tim là con trỏ kiểu node dùng duyệt hết danh sách list l sau là con trỏ lun lun chạy phía sau con trỏ tim đầu vào là con trỏ xoa kiểu node Nhưng khi mình nhập 1 danh sách vào rồi dùng hàm remove để xóa 1 node thì khi in ra nó vẫn là danh sách đó mà ko bị xóa Xem dùng mình lỗi của thuật toán đi Hỏi liên tục thì kì quá nhưng mà ngồi từ sáng tới giờ chỉ ăn cơm thôi mà vẫn ko viết nỗi :(
Mình đang học dreamweaver ở trường.Đến phần ASP muốn về nhà thực hành nhưng ko thể vào được trang localhost(đã cài IIS).Propeties của thư mục cũng ko thấy phần web sharing.Phải làm thế nào để thực hành được ASP đây,bạn nào giúp mình với.
Bạn viết ct khó hiểu quá, viẹc xóa 1 nút trong linked list đơn giản hơn nhiều. Thường người ta xóa 1 nút đứng sau nút chỉ định, ví dụ xóa nút sau nút node Còn việc xóa 1 nút tại vị trí chủ định thì duyệt tìm đến nút truớc nó rồi làm như trên
mình cũng tham khảo 1 số ví dụ thì thấy đc cái khúc mắc của mình là mình chỉ xóa 1 node mà nó ko liên quan gì tới list ( hoặc là gì đó...) ,vd list gồm A B C D , mình gán A cho E rồi delete E ---> ko liên quan gì ??? Có thể là như thế mà cũng chưa tìm đc cách sửa
Có ai cho hỏi về cái tablet đi... Đại khái là tớ muốn mua 1 công cụ để vẽ, rồi đưa trực tiếp vào máy tính... Hồi đó nhớ mang máng có ai nói đó là tablet thì phải...