Windows Việt

Cộng Đồng Công Nghệ Thông Tin Việt

Trang ChínhTrang Chính  Sự kiện  Tìm kiếmTìm kiếm  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Share
 
 Sửa giúp bài QuickSort Struct
Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
girlthethao
Member

girlthethao
Member
Giới tính : Nữ
Tuổi : 28
Posts Posts : 21
Coins Coins : 87
Thanked Thanked : 0
Sửa giúp bài QuickSort Struct Empty

Mong sửa hộ mình 1 bài về quicksort struct với :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

typedef struct {
char MSSV[5], hoten[30];
int diem;
} SV;
void swap(SV a, SV b)
{
SV c=a;
a=b;
b=c;
}
void nhapSV(SV a[], int n)
{
int i;
char x[5];
printf("Nhap si so sv: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\nMa so SV: ");
//int flushall();
cin.getline(x,5,'.');
strcpy(a[i].MSSV, x);
printf("\nHoten SV: ");
cin.getline(a[i].hoten,30,'.');
printf("\nDiem SV: ");
scanf("%d",&a[i].diem);
}
}
void inSV(SV a[], int n)
{
int i;
for (i=0; i printf("\n%6s %30s %4d", a[i].MSSV, a[i].hoten, a[i].diem);
}
void sapxep(SV a[], int l, int r)
{
char *x;
int i, j;
i=l;
j=r;
x=a[(l+r)/2].MSSV;
do
{
while((a[i].MSSV) while((a[j].MSSV)>x)j--;
if(i<=j)
{
swap(a[i],a[j]);
i++;
j--;
}
}while(i<=j);
if(l if(i}
void sapxep1(SV a[], int n)
{
sapxep(a, 0, n-1 );
}
main()
{
SV a[100];
int n=0;
int l, r;
nhapSV(a, n);
printf("\nDanh sach ban dau: ");
inSV(a, n);
sapxep1(a, n);
printf("\n\nDanh sach sau khi sap xep: ");
inSV(a, n);
getch();
}

※ Bài viết cùng chuyên mục


Tác giảThông điệp
boy_saudoi
Member

boy_saudoi
Member
Giới tính : Nam
Tuổi : 30
Posts Posts : 43
Coins Coins : 85
Thanked Thanked : 8
Sửa giúp bài QuickSort Struct Empty

Bài hoàn chỉnh của bạn đây
Code:

typedef struct
{
   char MSSV[5];
   char hoten[30];
   int diem;
}SV;

void swap(SV &a, SV &b)
{
   SV c=a;
   a=b;
   b=c;
}
void nhapSV(SV a[], int &n)
{
   printf("Nhap si so sv: ");
   scanf("%d",&n);
   for(int i=0;i<n;i++)
   {
      printf("\nMa so SV: ");
      fflush(stdin);
      gets(a[i].MSSV);
      printf("\nHoten SV: ");
      fflush(stdin);
      gets(a[i].hoten);
      printf("\nDiem SV: ");
      scanf("%d",&a[i].diem);
   }
}

void inSV(SV a[], int n)
{
   for (int i=0;i<n;i++)
      printf("\n%6s %30s %4d", a[i].MSSV, a[i].hoten, a[i].diem);
}

//Sap Xep Danh Sach Sinh Vien Tang Theo Diem
void QuickSort_Diem(SV a[], int l, int r)
{
   int i, j;
   i=l;
   j=r;
   int x=a[(l+r)/2].diem;
   do
   {
      while(a[i].diem<x)
         i++;
      while(a[j].diem>x)
         j--;
      if(i<=j)
      {
         swap(a[i],a[j]);
         i++;
         j--;
      }
   }
   while(i<=j);
   if(l<j)
      QuickSort_Diem(a,l,j);
   if(r>i)
      QuickSort_Diem(a,i,r);
}
   


int _tmain(int argc, _TCHAR* argv[])
{
   SV a[100];
   int n=0;
   int l, r;
   nhapSV(a, n);
   printf("\nDanh sach ban dau: ");
   inSV(a, n);
   QuickSort_Diem(a,0,n-1);
   printf("\n\nDanh sach sau khi sap xep: ");
   inSV(a, n);
   return 0;
}

P/s : Bài quá nhiều lỗi sai căn bản !


Sống Trên Đời Phải Có Chữ "Tâm"

Sửa giúp bài QuickSort Struct Av7005

Muốn Sinh Tồn Phải Thêm Chữ "Nhẫn"

※ Bài viết cùng chuyên mục


Tác giảThông điệp
girlthethao
Member

girlthethao
Member
Giới tính : Nữ
Tuổi : 28
Posts Posts : 21
Coins Coins : 87
Thanked Thanked : 0
Sửa giúp bài QuickSort Struct Empty

Thanks bạn nhiều . Mình test thử và chạy tuy nhiên phần hiện ds khi chưa sắp xếp và sắp xếp chưa hiện thị ra kết quả danh sách . Bạn sửa , hoàn thiện giùm mình đoạn code 2 phần này tiếp được không ?

※ Bài viết cùng chuyên mục


Tác giảThông điệp
boy_saudoi
Member

boy_saudoi
Member
Giới tính : Nam
Tuổi : 30
Posts Posts : 43
Coins Coins : 85
Thanked Thanked : 8
Sửa giúp bài QuickSort Struct Empty

Mình không hiểu y của bạn . Bạn cho ví dụ cụ thể nhé ... !!!


Sống Trên Đời Phải Có Chữ "Tâm"

Sửa giúp bài QuickSort Struct Av7005

Muốn Sinh Tồn Phải Thêm Chữ "Nhẫn"

※ Bài viết cùng chuyên mục


Tác giảThông điệp
girlthethao
Member

girlthethao
Member
Giới tính : Nữ
Tuổi : 28
Posts Posts : 21
Coins Coins : 87
Thanked Thanked : 0
Sửa giúp bài QuickSort Struct Empty

Mình chạy trên turbo C . Chỉ chạy được phần nhập thông tin chưa hiển thị ra được kết quả danh sách lúc chưa sắp xếp và lúc đã sắp xếp (danh sách chưa sx và đã sx hiển thị là rỗng ).

※ Bài viết cùng chuyên mục


Tác giảThông điệp
boy_saudoi
Member

boy_saudoi
Member
Giới tính : Nam
Tuổi : 30
Posts Posts : 43
Coins Coins : 85
Thanked Thanked : 8
Sửa giúp bài QuickSort Struct Empty

sao bạn không cài Visual Studio đi , để phục vụ cho mấy môn học sau lun , trình biên dịch hỗ trợ mạnh mẽ chơi đuọc cả C/C++ , C# , VB.NET lun . Còn về vụ hiện danh sách sau khi sắp xếp thì do thuật toán Qụick Sort được cài đặt bàng đệ quy nên đối với danh sách lớn sẽ dễ tràn Stack do không đủ bộ nhớ . Còn về ý tuong thuât toán thì bài đó hoàn chỉnh rồi đó bạn Very Happy


Sống Trên Đời Phải Có Chữ "Tâm"

Sửa giúp bài QuickSort Struct Av7005

Muốn Sinh Tồn Phải Thêm Chữ "Nhẫn"

※ Bài viết cùng chuyên mục


Tác giảThông điệp
Sponsored content


Sửa giúp bài QuickSort Struct Empty

※ Bài viết cùng chuyên mục


 
Sửa giúp bài QuickSort Struct
Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Windows Việt :: Lưu Trữ :: Lưu Trữ - Các môn học cũ :: Kỹ Thuật Lập Trình-
[Windows Việt] Deverloped by Nguyễn Gia Phú - https://windows.forumvi.com
Powered by © Forumotion.com - phpBB™ version ©phpBB2
Go to top Go to bottom