Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 24 kết quả

Đề tài: Kiểm tra chuỗi có đối xứng hay không!!!!!!!!!!!

  1. #1
    Ngày gia nhập
    03 2009
    Nơi ở
    my home ^^
    Bài viết
    61

    Exclamation Kiểm tra chuỗi có đối xứng hay không!!!!!!!!!!!

    Đề bài: Kiểm tra chuỗi ký tự nhập vào có đổi xúng hay không.
    Đoạn code của em như sau:
    C++ Code:
    1. void KTXauDoiXung (Chuoi a)
    2. {
    3.     int i=0, j=CDai(a)-1,m=j/2,kq;
    4.     for(i;i<m;i++)
    5.     {
    6.         for(j;j>m;j--)
    7.         {
    8.             if(a[i]=a[j])
    9.                 kq=1;
    10.             else
    11.                 kq=0;              
    12.         }
    13.     }
    14.     if(kq==1)
    15.         cout<<"\nChuoi da nhap doi xung.";
    16.     else
    17.         cout<<"\nChuoi da ko nhap doi xung.";
    18. }

    Em không bik là sai ở chỗ nào, mong các huynh júp đỡ.
    Em muốn kiểm tra nó thành từng cặp 1 từ 2 bên vào giữa thì kiểm tra như thế nào.
    Nhân tiện cho e hỏi lun cách làm bài sau: Ghép xâu thứ 2 vào xâu đã nhập ban đầu.(Xâu thứ 2 tự nhập).
    M|R.S!!!!!!!!!!!

  2. #2
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Bạn cho code vào tag.
    Code của bạn chỉ kiểm tra 2 kí tự cuối vòng lặp có đối xứng không mà thôi.
    C++ Code:
    1. void KTXauDoiXung (Chuoi a)
    2. {
    3.     int i=0, j=CDai(a)-1,m=j/2,kq=1;
    4.     for(i;i<m;i++)
    5.     {
    6.         for(j;j>m;j--)
    7.         {
    8.             if(a[i]!=a[j]) {kq=0;break;}
    9.         }
    10.     }
    11.     if(kq==1) cout<<"\nChuoi da nhap doi xung.";
    12.     else cout<<"\nChuoi da ko nhap doi xung.";
    13. }
    Sữa lại như mình đi nhé
    Còn ghép xâu thì mình không rõ, trong C++ có hàm mà?

  3. #3
    Ngày gia nhập
    03 2009
    Nơi ở
    my home ^^
    Bài viết
    61

    Trích dẫn Nguyên bản được gửi bởi trungkien45 Xem bài viết
    Bạn cho code vào tag.
    Code của bạn chỉ kiểm tra 2 kí tự cuối vòng lặp có đối xứng không mà thôi.
    C++ Code:
    1. void KTXauDoiXung (Chuoi a)
    2. {
    3.     int i=0, j=CDai(a)-1,m=j/2,kq=1;
    4.     for(i;i<m;i++)
    5.     {
    6.         for(j;j>m;j--)
    7.         {
    8.             if(a[i]!=a[j]) {kq=0;break;}
    9.         }
    10.     }
    11.     if(kq==1) cout<<"\nChuoi da nhap doi xung.";
    12.     else cout<<"\nChuoi da ko nhap doi xung.";
    13. }
    Sữa lại như mình đi nhé
    Còn ghép xâu thì mình không rõ, trong C++ có hàm mà?
    pro kiểm tra lại jùm e với, em nhập vào as mà nó cũg bảo la đối xứng!!!!!
    M|R.S!!!!!!!!!!!

  4. #4
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    667

    Hình như bạn phải tăng i đông thời giảm j chứ không lồng nhau được, còn mấy cái hàm của bạn thì mình không rõ. và điều kiện trong for: i<=m,j>=m
    Đã được chỉnh sửa lần cuối bởi trungkien45 : 06-05-2009 lúc 11:06 PM.

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

    đây là bài của zodjac1990 ( ko biết viết đúng ko) mà theo mình là rất hay ( đây ko phải là bài của mình):
    PHP Code:
    #include<stdio.h>
    #include<string.h>
    void main()
    {
      
    char chuoi[125];
      
    int i 0j;

      
    printf("\nNhap vao chuoi kiem tra : ");
      
    gets(chuoi);
      
    strlen(chuoi) - 1;

      while(
    chuoi[i++] == chuoi[j--])     // thuc hien j+1 lan
      
    ;
      if (--
    i>=++j)          // luc nay chac chan j==0 va i== strlen(chuoi) ( neu chuoi doi xung)
       
    printf("Chuoi doi xung");
      else
       
    printf("Chuoi khong doi xung");


  6. #6
    Ngày gia nhập
    03 2009
    Nơi ở
    my home ^^
    Bài viết
    61

    Mặc định Kiểm tra chuỗi có đối xứng hay không!!!!!!!!!!!

    Bài code đầu tiên cảu mình thiếu 1 dấu = làm sai hết .
    Đây là code mình vừa làm lại:
    C++ Code:
    1. void KTXauDoiXung (Chuoi a)
    2. {
    3.     int i=0, j=CDai(a)-1,m=j/2,kq=1;
    4.     if(CDai(a)==2)
    5.     {
    6.         if(a[i]==a[j])
    7.             cout<<"\nChuoi da nhap doi xung.";
    8.         else
    9.             cout<<"\nChuoi da nhap ko doi xung.";
    10.     }
    11.     else
    12.         {
    13.             for(i;i<m;i++)
    14.             {
    15.                 for(j;j>m;j--)
    16.                 {
    17.                     if(a[i]!=a[j])
    18.                         {kq=0;break;}
    19.                 }
    20.             }
    21.         if(kq==1)
    22.             cout<<"\nChuoi da nhap doi xung.";
    23.         else
    24.             cout<<"\nChuoi da ko nhap doi xung.";
    25.         }
    26.    
    27. }
    Mong các huynh kiểm tra lại dùm.Cho e hỏi còn cách nào gọn hơn ko?
    M|R.S!!!!!!!!!!!

  7. #7
    Ngày gia nhập
    03 2009
    Nơi ở
    my home ^^
    Bài viết
    61

    Trích dẫn Nguyên bản được gửi bởi clementboy03 Xem bài viết
    đây là bài của zodjac1990 ( ko biết viết đúng ko) mà theo mình là rất hay ( đây ko phải là bài của mình):
    PHP Code:
    #include<stdio.h>
    #include<string.h>
    void main()
    {
      
    char chuoi[125];
      
    int i 0j;

      
    printf("\nNhap vao chuoi kiem tra : ");
      
    gets(chuoi);
      
    strlen(chuoi) - 1;

      while(
    chuoi[i++] == chuoi[j--])     // thuc hien j+1 lan
      
    ;
      if (--
    i>=++j)          // luc nay chac chan j==0 va i== strlen(chuoi) ( neu chuoi doi xung)
       
    printf("Chuoi doi xung");
      else
       
    printf("Chuoi khong doi xung");

    Daọn code này mình ko hỉu lắm, có thể jải thik jùm mình ko.
    if (--i>=++j) : đoạn này là sao?
    M|R.S!!!!!!!!!!!

  8. #8
    Ngày gia nhập
    10 2008
    Bài viết
    178

    coi thử cái này
    PHP Code:
    bool KiemTra_DoiXung(const char *srr)
    {
        
    int n = (int)strlen(srr) - 1;
        if(
    2)
        {
            return 
    false;
        }
        
    int i 0;
        while (
    != n)
        {
            if(
    srr[i] != srr[n])
            {
                return 
    false;
            }
            
    i++;
            
    n--;
        }
        return 
    true;


  9. #9
    Ngày gia nhập
    04 2008
    Nơi ở
    HCMC
    Bài viết
    251

    C++ Code:
    1. if (--i>=++j) //Cái này có comment rồi đó:Nếu chuỗi đối xứng thì lúc này chắc chắn j==0 va i== strlen(chuoi)
    @M|r.S: Đưa code vào tag bạn nhé
    C++ Code:
    1. for(;;){cout<<"Busy"<<endl;}
    2. system("cls");
    Hãy ủng hộ cho quỹ phát triển cộng đồng C Việt
    http://congdongcviet.com/quyphattrien-congdongcviet.cpp

  10. #10
    Ngày gia nhập
    03 2009
    Nơi ở
    my home ^^
    Bài viết
    61

    Đúng là đoạn code đó ngắn gọn thật . Thanks các pro đã júp đỡ!!!
    Nhân tiện các huynh chỉ jáo jùm đệ bài này lun: Ghép xâu thứ 2 vào cuối xâu thứ 1.
    M|R.S!!!!!!!!!!!

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