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

Đề tài: Code xét 1 xâu có đối xứng không bằng C. Lỗi không đúng trong trường hợp xâu có dấu cách?

  1. #1
    Ngày gia nhập
    05 2011
    Bài viết
    7

    Mặc định Code xét 1 xâu có đối xứng không bằng C. Lỗi không đúng trong trường hợp xâu có dấu cách?

    Mình có bài tập như sau: " Nhập 1 xâu kí tự và kiểm tra xem xâu có đối xứng hay không?"

    Mình đã code xong nhưng chương trình của mình lại không đúng trong trường hợp xâu có dấu cách (VD: Nhập vào: a bba => chương trình in ra: đây là xâu đối xứng).

    Mong các bạn giúp mình sửa lỗi sai trong chương trình. Mình cảm ơn.
    C Code:
    1. #include <stdio.h>
    2. #include <string.h>
    3. main ()
    4. {
    5.     char s[100];
    6.     int i, n;
    7.  
    8.     printf("Nhap xau: ");
    9.     gets(s);
    10.     n=strlen(s);
    11.  
    12.     for(i=0 ;i<(n/2); i++)
    13.            {
    14.         if (s[i]=s[n-i-1]);
    15.         else printf("Xau khong doi xung");
    16.        }
    17.  
    18.     printf("Xau doi xung");
    19. }

  2. #2
    Ngày gia nhập
    07 2011
    Bài viết
    59

    Tạm tạm mình sữa lại thế này, nếu muốn chương trình hoàn hảo thì phải thêm nhiều thứ nữa.
    C Code:
    1. #include <stdio.h>
    2. #include <string.h>
    3. main ()
    4. {
    5.     char s[100];
    6.     int i, n, check = 0;
    7.  
    8.     printf("Nhap xau: ");
    9.     gets(s);
    10.     n=strlen(s);
    11.  
    12.     for(i=0 ;i<(n/2); i++)
    13.     {
    14.         if (s[i]!=s[n-i-1])
    15.         {
    16.             check = 1;
    17.         }
    18.     }
    19.    
    20.     if(check == 1)
    21.     {
    22.         printf("Xau khong doi xung\n");
    23.     }else
    24.     {
    25.         printf("Xau doi xung\n");
    26.     }
    27.  
    28. }

  3. #3
    Ngày gia nhập
    05 2011
    Bài viết
    7

    Cảm ơn bạn maitan_10000. Mình đã tìm ra được lỗi sai trong bài mình rồi

  4. #4
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà Nội
    Bài viết
    381

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<string.h>
    4.  
    5. int main()
    6. {
    7.     clrscr();
    8.     int i, j, dem = 0;
    9.     char s[100];
    10.     printf("\n Nhap chuoi:  ");
    11.     gets(s);
    12.     for(i=0,j=strlen(s)-1; i<j; i++, j--)
    13.     {
    14.         if(s[i]!=s[j])
    15.         {
    16.             printf("\n khong doi xung");
    17.             getch();
    18.             return 0;
    19.         }
    20.         else
    21.         {
    22.             dem++;
    23.         }
    24.     }
    25.     printf("\n co doi xung");
    26.     printf("\n So chhu giong nhau trong chuoi: %d", dem);
    27.     getch();
    28.     return 0;
    29. }

    skype: hvphu2010
    Yahoo: hvphu2010
    Sdt: 0129 609 4567

  5. #5
    Ngày gia nhập
    01 2011
    Bài viết
    30

    Mình cũng đóng góp một ý nhỏ.
    Mình cũng vừa viết bài này, và cũng đi chia cả đống trường hợp. Nhưng sao không thể đơn giản hơn như sau nhỉ.
    Theo mình tạo xâu s2 mới là đảo ngược của xâu ban đầu.
    Dùng hàm strcmp(s1,s2) nếu ==0 thì hai xâu bằng nhau, ngược lại thì không bằng nhau.
    lazy code

  6. #6
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Mặc định Code xét 1 xâu có đối xứng không bằng C. Lỗi không đúng trong trường hợp xâu có dấu cách?

    Chủ đề bài sau đó có nói là đã tìm ra chỗ sai của mình, nhưng không giải thích.

    Tôi nêu chỗ này ra cho các bạn mới học dễ tham khảo:

    C Code:
    1. #include <stdio.h>
    2. #include <string.h>
    3. main ()
    4. {
    5.     char s[100];
    6.     int i, n;
    7.  
    8.     printf("Nhap xau: ");
    9.     gets(s);
    10.     n=strlen(s);
    11.  
    12.     for(i=0 ;i<(n/2); i++)
    13.            {
    14.         if (s[i]=s[n-i-1]); // sai chỗ này, phải dùng == thay vì =
    15.                                // vì chỗ sai này, cho nên xét xâu nào cũng đói xứng tuốt
    16.         else printf("Xau khong doi xung");
    17.        }
    18.  
    19.     printf("Xau doi xung");
    20. }

    * Nhắc nhở cho các bạn mới tập code: luôn luôn kiểm tra dấu == khi dùng if (nếu dùng dấu = thì phải hiểu chính xác mình muốn gì)

    tb. tôi chỉ đưa ra chỗ sai thôi. Còn về giải thuật thì code của kitti là chính xác nhất
    @toansvcn: giải thuật đảo ngược xâu của bạn quá dài dòng cho trường hợp này. Bạn cho rằng nó đơn giản là sai.

  7. #7
    Ngày gia nhập
    05 2011
    Nơi ở
    TP HCM
    Bài viết
    27

    À, mình là mình thấy dấu "=" ở lệnh if có vấn đề thôi . Với cả cách bạn chủ 2pic thì sẽ in ra "1 đống" dòng "xau khong doi xung" nữa

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

  1. Code red black tree trong c++ chạy không đúng?
    Gửi bởi squall_ttthp trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 3
    Bài viết cuối: 03-05-2013, 04:33 PM
  2. code in lịch 1 tháng trong năm, làm sao để sửa ngày 1 về đúng vị trí?
    Gửi bởi cugaru279 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 17-05-2012, 09:31 PM
  3. compiler Warning: Unreachable code và chạy sai trong khi code đúng. Vì sao?
    Gửi bởi lovemoney trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 19
    Bài viết cuối: 19-01-2012, 10:02 PM
  4. Bài tập C++ Nhập code và name sv vào in ra thì name in đúng nhưng code thì in ra cả 2 code lẫn name
    Gửi bởi spacy0212 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 27-09-2011, 08:47 AM
  5. Đoạn code tìm hàng có tổng max trong ma trận chạy không đúng, sửa thế nào??
    Gửi bởi zodjac1990 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 10
    Bài viết cuối: 23-07-2011, 12:35 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