Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: sắp xếp chuỗi

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    0

    Wink sắp xếp chuỗi

    các pro ơi giúp mình bài này với mình làm hoài mà ko được , đề là: từ bàn phím nhập vào danh sách hoc sinh mõi hoc sinh bao gồm họ và tên , sau đó sắp xếp lại tên theo kí tự A,B ,C ... nếu tên trùng thì sắp xếp lại theo họ.
    mong các pro giúp nhanh nhanh tí sắp nộp rùi!!!

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn dùng hàm strcmp để kiểm tra chuỗi giống nhau.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    các pro ơi giúp mình bài này với mình làm hoài mà ko được , đề là: từ bàn phím nhập vào danh sách hoc sinh mõi hoc sinh bao gồm họ và tên , sau đó sắp xếp lại tên theo kí tự A,B ,C ... nếu tên trùng thì sắp xếp lại theo họ.
    Bạn cứ nhập chuỗi như bình thường vào một mảng, dùng vòng lặp tách tên riếng từng người ra một mảng khác.

    Tiến hành sắp xếp tên, so sánh dùng lệnh strcmp, hoán vị dùng lệnh strcpy

    Trong TH có hai tên bằng nhau bạn so sánh luôn 2 chuỗi họ tên tương ứng ở cùng vị trí đó.

    Bạn cứ code đi rồi mọi người sẽ dần dần trao đổi.

    Have fun!

  4. #4
    Ngày gia nhập
    02 2008
    Nơi ở
    Việt Nam
    Bài viết
    577

    Code này mình làm sơ qua thôi, để chắc chắn bạn nên test thử nhiều TH

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3. #include <string.h>
    4.  
    5. void SortName(char a[][50], int n);
    6.  
    7. int main ()
    8. {
    9.     char fullName[50][50];
    10.     int i=0,j,number;
    11.     printf(" * How many people? ");
    12.     scanf("%d",&number);
    13.     while (i < number)
    14.         {
    15.             printf( "   - Enter full name: ");
    16.             fflush(stdin);
    17.             gets(fullName[i]);
    18.             i++;
    19.         }
    20.     SortName( fullName, number);
    21.     printf("\n -> List sort:\n");
    22.     for (i = 0; i < number; i ++)
    23.     printf("   - Full name: %s\n", fullName[i]);
    24.     getch();
    25. }
    26.  
    27. void Name(char a[][50],char b[][50],int n)
    28. {
    29.     int i,j,k;
    30.     for(i=0;i<n;i++)
    31.     {
    32.         k=strlen(a[i]);
    33.         while (a[i][k--]!=' ');
    34.         j=0;k+=2;
    35.         while (a[i][k]!='\0'){b[i][j++]=a[i][k++];}
    36.         b[i][j]='\0';
    37.     }
    38.     printf("\n * Result name: \n"); //bo doan nay di khi ban khong can
    39.     for (i = 0; i < n; i ++)        // minh cho vao de test
    40.     printf("   - Name: %s\n", b[i]);
    41. }
    42.  
    43. void SortName(char a[][50], int n)
    44. {
    45.     int i,j;
    46.     char b[50][50],temp[50];
    47.     Name(a,b,n);
    48.     for (i=0; i< n-1; i++)
    49.         for (j=i+1; j< n; j++)
    50.             if (strcmp(b[i],b[j]) > 0)
    51.             {
    52.                     strcpy(temp,a[i]);
    53.                     strcpy(a[i],a[j]);
    54.                     strcpy(a[j],temp);
    55.  
    56.                     strcpy(temp,b[i]);
    57.                     strcpy(b[i],b[j]);
    58.                     strcpy(b[j],temp);
    59.             }
    60.             else if (strcmp(b[i],b[j])==0 && strcmp(a[i],a[j])>0)
    61.             {
    62.                     strcpy(temp,a[i]);
    63.                     strcpy(a[i],a[j]);
    64.                     strcpy(a[j],temp);
    65.  
    66.                     strcpy(temp,b[i]);
    67.                     strcpy(b[i],b[j]);
    68.                     strcpy(b[j],temp);
    69.             }
    70. }
    Đã được chỉnh sửa lần cuối bởi QuangHoang : 29-09-2008 lúc 11:03 PM.

  5. #5
    Ngày gia nhập
    09 2008
    Bài viết
    0

    thanks bạn nhiều nhe!!!

Các đề tài tương tự

  1. Bài tập C++ Cách để so sánh 2 chuỗi kí tự giữa chuỗi nhập từ phím và chuỗi từ file xem có giống nhau không?
    Gửi bởi davilson18 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 09-06-2012, 09:47 AM
  2. Lập trình C Thay thế chuỗi s1 trong chuỗi s bằng chuỗi s
    Gửi bởi duytue trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 7
    Bài viết cuối: 23-09-2011, 04:16 PM
  3. thay thế chuỗi con thứ i trong chuỗi mẹ bằng 1 chuỗi khác
    Gửi bởi nhat1811 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 06-08-2011, 08:25 AM
  4. Trả lời: 1
    Bài viết cuối: 29-06-2011, 12:02 AM
  5. xem một từ trong chuỗi là một chuỗi con, sắp xếp các chuỗi con theo thứ tự tăng dần
    Gửi bởi qpkdct1101 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 20-01-2011, 08:22 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn