Cách xếp tên theo thứ tự ABC trong C

  1. Chọn danh sách mà bạn muốn sắp xếp.

  2. Đi tới Trang chủ >sắp xếp.

    Cách xếp tên theo thứ tự ABC trong C

  3. Đặt Sắp xếp theo thành Đoạn văn và Văn bản.

  4. Chọn Tăng dần (A đến Z) hoặc Giảm dần (Z đến A).

  5. Chọn OK.

  1. Chọn danh sách mà bạn muốn sắp xếp.

  2. Trên tab Nhà bấm Sắp xếp.

    Cách xếp tên theo thứ tự ABC trong C

  3. Trong hộp thoại Sắp xếp Văn bản:

    • Bên dưới Sắp xếp theo, hãy chọn Đoạn văn.

    • Bên cạnh Loại, hãy chọn Văn bản.

    • Chọn Tăng dần hoặc Giảm dần.

  4. Bấm OK.

Với Word dành cho web bạn có thể tạo các danh sách đánh số và dấu đầu dòng, nhưng bạn không thể sắp xếp danh sách theo thứ tự bảng chữ cái. Bạn có thể sắp xếp danh sách theo thứ tự bảng chữ cái trong phiên bản Word trên máy tính.

Nếu bạn có Word, hãy chọn Mở bằng Word.

Sau đó làm theo hướng dẫn trong tab Windows.

Trong bài tập này chúng ta sẽ thực hiện chương trình C++ sắp xếp các chuỗi theo thứ tự Alphabet. Đây là bài tập khá đơn giản giúp các bạn thực hành với các vòng lặp basic.

Cách xếp tên theo thứ tự ABC trong C

Cách xếp tên theo thứ tự ABC trong C

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong chương trình sau, người dùng sẽ được yêu cầu nhập một bộ gồm các chuỗi và chương trình sẽ sắp xếp và hiển thị chúng theo thứ tự bảng chữ cái tăng dần.

Ví dụ: Chương trình C++ sắp xếp các chuỗi theo thứ tự Alphabet.

Ở ví dụ này chúng ta cần có một mảng để chứa các chuỗi người dùng nhập vào, sau đó sẽ yêu cầu người dùng nhập vào số lượng các chuỗi và tạo một vòng lặp for để nhập nội dung cho từng chuỗi.

Sau khi đã có được dữ liệu từ người dùng thì tạo thêm một vòng lặp for để sắp xếp dữ liệu người dùng vừa nhập rồi hiển thị ra màn hình.

Bài viết này được đăng tại [free tuts .net]

#include <iostream> #include<string.h> using namespace std; int main(){ int i,j,count; char str[25][25],temp[25]; puts("bạn muốn nhập bao nhiêu chuỗi: "); cin>>count; puts("Nhập vào chuỗi đầu tiên: "); for(i=0;i<count;i++) cin>>(str[i]); for(i=0;i<count;i++) for(j=i+1;j<count;j++){ if(strcmp(str[i],str[j])>0){ strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp); } } printf("Các chuỗi sau khi sắp xếp là:\n"); for(i=0;i<=count;i++) puts(str[i]); cout<<"\n------------------------------\n"; cout<<"Chương trình này được đăng tại Freetuts.net"; }

Kết quả:

Cách xếp tên theo thứ tự ABC trong C

Như vậy là chúng ta đã thực hiện xong chương trình C++ sắp xếp các chuỗi theo thứ tự Alphabet. Chúc các bạn thực hiện thành công!!!

View Full Version : Bài tập C Bài tập mảng sắp xếp tên theo ABC


ToNy_

12-12-2011, 12:14 PM

Các bạn gợi ý giúp mình bài này với . Mình biết dùng hảm strcmp để so sánh rồi , nhưng strcmp chỉ so sánh được 2 tên thì làm thế nào nhỉ. 1. Viết một chương trình để sắp xếp các tên sau đây theo thứ tự abc. Code: George Albert Tina Xavier Roger Tim

William

beautifulsoul84hung

12-12-2011, 12:37 PM

Các bạn gợi ý giúp mình bài này với . Mình biết dùng hảm strcmp để so sánh rồi , nhưng strcmp chỉ so sánh được 2 tên thì làm thế nào nhỉ. 1. Viết một chương trình để sắp xếp các tên sau đây theo thứ tự abc. Code: George Albert Tina Xavier Roger Tim William Trời ơi. Đã biết thế rồi sao không làm đc tiếp @@

Bình thường sắp xếp số tnhien cũng bắt đầu so sánh từ 2 số rồi mới sắp xếp chúng đc mà :D

ToNy_

12-12-2011, 01:21 PM

Trời ơi. Đã biết thế rồi sao không làm đc tiếp @@ Bình thường sắp xếp số tnhien cũng bắt đầu so sánh từ 2 số rồi mới sắp xếp chúng đc mà :D Mình làm thế này hix . Nhưng không chạy được . #include<stdio.h> #include<conio.h> void main() { char name[7]; int i,j; for(i = 0;i=7;i++) { for(j=0;j=i;j++) { printf("Nhap ten ban muon sap xep: "); scanf("%s",name[j]); if(strcmp(name[i],name[j])>0) { int temp; name[j] = temp; name[j] = name[i]; name[i] = temp; } printf("Danh sach sau khi sap xep ABC: %s",name[j]); } }

}

VoTichSu

12-12-2011, 01:31 PM

Cần tìm tài liệu học về chuỗi trong C.
Theo cách viết code trên thì bạn hoàn toàn không biết chuỗi có nghĩa là gì.

ToNy_

12-12-2011, 02:04 PM

Cần tìm tài liệu học về chuỗi trong C. Theo cách viết code trên thì bạn hoàn toàn không biết chuỗi có nghĩa là gì.

Đúng rồi . Mình học theo giáo trình C của Aptech , chưa học đến bài chuỗi mà .

ToNy_

13-12-2011, 12:22 PM

Cần tìm tài liệu học về chuỗi trong C. Theo cách viết code trên thì bạn hoàn toàn không biết chuỗi có nghĩa là gì. #include<stdio.h> #include<conio.h> #include<string.h> void main() { char name[7][25], tempt[25]; int i ,j; printf("Nhap cac ten: "); for(i =0;i<7;i++) { printf("Ten: %d",i+1); fflush(stdin); gets(name[i]); } printf("Sap xep theo thu tu tang dan : "); for(i = 0;i<6;i++) { for(j=i+1;j<7;j++) if(strcmp(name[i],name[j])>0) { strcpy(tempt,name[i]); strcpy(name[j],name[i]); strcpy(name[j],temp); } } printf("Cac ten sau khi da xap xep xong: "); for(i=0;i<7;i++) printf("\n %s",name[i]); }

VoTichSu xem hộ mình với . Làm như thế này mà sao vẫn không ra.

VoTichSu

13-12-2011, 01:10 PM

Nếu không biết cách phân biệt các tên biến i, j thì đặt chúng là cái gì khác cho dễ hiểu một chút.

ToNy_

13-12-2011, 02:39 PM

Oh mình nhầm . Nhưng trên compiler mình viết là j nó cũng không chạy nữa .

xuyenit55

14-12-2011, 02:42 PM

#include<stdio.h> #include<conio.h> #include<string.h> void main() { char name[7][25], tempt[25]; int i ,j; printf("Nhap cac ten: "); for(i =0;i<7;i++) { printf("Ten: %d",i+1); fflush(stdin); gets(name[i]); } printf("Sap xep theo thu tu tang dan : "); for(i = 0;i<6;i++) { for(j=i+1;j<7;j++) if(strcmp(name[i],name[j])>0) { strcpy(tempt,name[i]); strcpy(name[j],name[i]); strcpy(name[j],temp); } } printf("Cac ten sau khi da xap xep xong: "); for(i=0;i<7;i++) printf("\n %s",name[i]); } VoTichSu xem hộ mình với . Làm như thế này mà sao vẫn không ra. của bạn đây ! #include<stdio.h> #include<conio.h> #include<string.h> void main() { char *name[7] ; char *tempt; int i ,j; printf("Nhap cac ten:\n "); for(i =0;i<7;i++) { name[i] = new char[25]; printf("Ten: %d :",i+1); fflush(stdin); gets(name[i]); } printf("Sap xep theo thu tu tang dan : "); for(i = 0;i<7;i++){ for ( int j = i+1 ; j < 7 ; j++){ if(strcmp(name[i],name[j])>0) { tempt = name[i]; name[i] = name[j]; name[j] = tempt; } } } printf("Cac ten sau khi da xap xep xong: "); for(i=0;i<7;i++) printf("\n %s",name[i]); getch();

}

ToNy_

14-12-2011, 02:44 PM

Có ai giúp chỉ cho mình lỗi ở chỗ nào không .

ToNy_

14-12-2011, 02:55 PM

của bạn đây ! Mình sửa như bạn thì nó báo lỗi ở chỗ

name[i] = new char[25];

xuyenit55

14-12-2011, 03:04 PM

Mình sửa như bạn thì nó báo lỗi ở chỗ name[i] = new char[25];

mình chạy trên devc++ nó bình thường ! :|

ToNy_

14-12-2011, 03:15 PM

mình chạy trên devc++ nó bình thường ! :|

Vậy à . Mình chạy trên cái Code:Blocks nó lại ko chạy được . Thế bạn chỉ cho mình bài cũ của mình lỗi gì được ko .

xuyenit55

14-12-2011, 03:29 PM

Vậy à . Mình chạy trên cái Code:Blocks nó lại ko chạy được . Thế bạn chỉ cho mình bài cũ của mình lỗi gì được ko . đây bài của bạn đây ! codeblock để file.c nên nó ko khai báo kiểu new , phải để kiểu macllo ! #include<stdio.h> #include<conio.h> #include<string.h> void main() { char *name[7]; char *tempt; int i = 0 , j = 0; printf("Nhap cac ten:\n "); for( i = 0; i<7 ; i++) { name[i] = (char*)malloc(25); printf("Ten: %d :",i+1); fflush(stdin); gets(name[i]); } printf("Sap xep theo thu tu tang dan : "); for( i = 0;i<7;i++){ for ( j = i+1 ; j < 7 ; j++){ if(strcmp(name[i],name[j])>0) { tempt = name[i]; name[i] = name[j]; name[j] = tempt; } } } printf("Cac ten sau khi da xap xep xong: "); for( i=0;i<7;i++) printf("\n %s",name[i]); getch();

}

ToNy_

14-12-2011, 03:37 PM

đây bài của bạn đây ! codeblock để file.c nên nó ko khai báo kiểu new , phải để kiểu macllo ! Uh . Tks bạn nhiều . Mình cũng thấy lỗi ở bài cũ của mình rồi . Sai chỗ hoán vị . Sửa lại nó cũng chạy được rồi . #include<stdio.h> #include<conio.h> #include<string.h> int main() { char name[7][25], temp[25]; int i ,j; printf("Nhap cac ten: "); for(i =0;i<7;i++) { printf("Ten: %d : ",i+1); fflush(stdin); gets(name[i]); } printf("Sap xep theo thu tu tang dan : "); for(i = 0;i<6;i++) { for(j=i+1;j<7;j++) if(strcmp(name[i],name[j])>0) { strcpy(temp,name[i]); strcpy(name[i],name[j]); strcpy(name[j],temp); } } printf("Cac ten sau khi da xap xep xong: "); for(i=0;i<7;i++) { printf("\n%s",name[i]); } }

Làm về con trỏ thì mình chưa hiểu lắm.

ToNy_

14-12-2011, 04:01 PM

đây bài của bạn đây ! codeblock để file.c nên nó ko khai báo kiểu new , phải để kiểu macllo ! Bài của bạn chạy nhanh hơn. Chắc là do dùng mảng 1 chiều , vs ko dùng cái strcpy.

Cho mình hỏi khi nào thì phải khởi tao i =0 và khi nào thì không phải khởi tạo.

xuyenit55

14-12-2011, 04:11 PM

Bài của bạn chạy nhanh hơn. Chắc là do dùng mảng 1 chiều , vs ko dùng cái strcpy. Cho mình hỏi khi nào thì phải khởi tao i =0 và khi nào thì không phải khởi tạo.

là sao ko hiểu ý cậu nói ! :D

ToNy_

14-12-2011, 04:42 PM

là sao ko hiểu ý cậu nói ! :D

Khởi tạo i = 0 , j = 0 ngay từ đầu đó bạn.