Bên dưới là code của em nhưng không biết sai chổ nào mà chạy thì có thông báo lỗi như thế này: , rồi ko ra kết quả gì cả và tắt luôn cửa sổ turbo C Ai biết sai chổ nào sửa giúp em, thêm vào code để nó hiển thị rõ các bước như dưới thì càng tốt. Cám ơn mọi người trước(học cấu trúc này mệt đầu quá đi) : Lược 1 hoán vị "a" với "a": in ra dãy số vừa hoán vị đoạn 1: ............ đoạn 2: .......... Lược 2 hoán vị "a" với "a": in ra dãy số vừa hoán vị đoạn 1: ............ đoạn 2: .......... #include<conio.h> #include<stdio.h> int ds[50],i,n; void taods() { for(i=1;i<=n;i++) { printf("phan tu thu a[%d]:",i); scanf("%d",&ds); } } void xuatds() { for(i=1;i<=n;i++) printf("%5d",ds); } void swap(int *c,int *d) {int a; a=*c; *c=*d; *d=a; return; } void Quick_Sort(int ds[], int left, int right) { if(left<right) {int i=left;int j=right;int x=ds[(left+right)/2]; do { while(ds<x) i++; while(ds[j]>x) j--; if(i<=j){swap(&ds,&ds[j]);i++;j--;} }while(i<=j); Quick_Sort(ds,left,j); Quick_Sort(ds,i,right); } } main () { int left,right; clrscr(); printf("n="); scanf("%d",&n); taods(); printf("\ndanh sach vua tao:\n"); xuatds(); printf("\ndanh sach da sap xep:\n"); Quick_Sort(ds,left,right); xuatds(); getch(); return 0; }
Cái hàm main có truyền left, right là truyền cái j thế? @@ Sửa lại thế này nhé! Mã: main () { printf("n="); scanf("%d",&n); taods(); printf("\ndanh sach vua tao:\n"); xuatds(); printf("\ndanh sach da sap xep:\n"); Quick_Sort(ds,0,n); xuatds(); getch(); return 0; }
gõ cái lỗi đó lên google cung toàn kiếm được mấy cái gì gì ko, chả liên quan gì hết. Ai có bài về sắp xếp nhanh hoàn chỉnh cho em luôn đi
Bạn xin code hay xin thuật toán, quan trọng là mình phải hiểu, code thì đầy ra. Mã: #include <stdio.h> #include <conio.h> #define max 20 int hoanvi(int &a,int &b) { int tmp; tmp=a; a=b; b=tmp; } void sxchon(int k[],int n) { for(int i=0; i<=n; i++) { int m=i; for(int j=i+1; j<n; j++) if(k[j]>k[m]) m=j; if(m!=i) hoanvi(k[i],k[m]); } } void sxchen(int k[],int n) { for(int i=1; i<n; i++) { int x=k[i]; int j=i-1; while(x>k[j]) { k[j+1]=k[j]; j--; }; k[j+1]=x; } } void sxnoibot(int k[max],int n) { for(int i=0; i<n; i++) for(int j=n-1; j>=i+1; j--) if(k[j]>k[j-1]) hoanvi(k[j],k[j-1]); } void sxnhanh(int k[], int left,int right) { if(left<right) { int i,j,x; i=left; j=right; x=k[(left+right)/2]; do { while(k[i]>x) i++; while(k[j]<x) j--; if(i<=j) { hoanvi(k[i],k[j]); i++; j--; } } while(i<=j); sxnhanh(k,left,j); sxnhanh(k,i,right); } } void chends(int k[max], int &n) { int x,vt; printf("\nNhap so can chen: "); scanf("%d",&x); printf("\nNhap vi tri can chen: "); scanf("%d",&vt); --vt; if((vt<=n)&&(vt>=0)) { for(int i=n; i>=vt; i--) k[i+1]=k[i]; n++; k[vt]=x; } else printf("\nVi tri khong hop le !\a\n"); } void xoa(int k[max],int &n) { int x; printf("\nNhap vi tri can xoa"); scanf("%d",&x); if(x<1||x>n) printf("\n\aVi tri khong hop le !"); else { --x;//gia tri thuc te for(int i=x; i<n; i++) k[i]=k[i+1]; n--; } } void nhapds(int k[max],int &n) { printf("\nNhap so phan tu nho hon %d: ",max); scanf("%d",&n); for(int i=0; i<n; i++) { printf("\nNhap %d: ",i+1); scanf("%d",&k[i]); } } void inds(int k[max],int n) { for(int i=0; i<n; i++) printf("%d ",k[i]); printf("\n"); } main() { int n,i,j,m[max]; //menu char c; menu: { printf("----------------------------Menu---------------------\n|\n"); printf("|Nhan q de thoat chuong trinh\n|Nhan r de hien lai Menu\n|\n"); printf("|1.Nhap danh sach\n"); printf("|2.In danh sach\n"); printf("|3.Sap xep chen\n"); printf("|4.Sap xep chon\n"); printf("|5.Sap xep noi bot\n"); printf("|6.Sap xep vun dong\n"); printf("|7.Sap xep nhanh\n"); printf("|8.Xoa phan tu\n"); printf("|9.Chen phan tu\n|\n"); printf("----------------------------Menu---------------------\n"); } while(c!='q') { c=getch(); switch(c) { case '1': nhapds(m,n); break; case '2': inds(m,n); break; case '3': sxchen(m,n); break; case '4': sxchon(m,n); break; case '5': sxnoibot(m,n); break; case '7': sxnhanh(m,0,n-1); break; case '8': xoa(m,n); break; case '9': chends(m,n); break; case 'r': goto menu; break; case 'q': printf("\nKet thuc chuong trinh !\n\n"); break; } } }
Cám ơn nha. Thuật toán thì mình nắm, mà viết code cứ chạy ko được báo lỗi hoài, chắt do mình ít thực hành