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

Đề tài: Bài tập C | Kiểm tra số hoặc chuỗi có đối xứng ko? help me!!!

  1. #1
    Ngày gia nhập
    04 2009
    Bài viết
    8

    Mặc định Bài tập C | Kiểm tra số hoặc chuỗi có đối xứng ko? help me!!!

    bạn nào có code hoặc phương pháp cũng được bài nhập vào số hoặc chuỗi kiểm tra xem có đối xứng hay không bảo mình với.thanks các bạn nhiều nha.

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

    Vậy thì các chuỗi này có đối xứng không:
    abcdcba
    abcbca
    Tôi tin rằng: giải thuật thì có thể tìm trong hàng trăm GB ebook, hoặc Google nhưng code chạy thì chưa chắc! Hãy post code để chứng tỏ giải thuật của bạn là đúng!
    Giải thuật là bản thiết kế của ngôi nhà, code là phần xây dựng. Nếu chỉ xây nhà trên giấy thì ta sống chả khác nào người nguyên thủy.

  3. #3
    Ngày gia nhập
    02 2009
    Nơi ở
    105 Lô P c/c ngô gia tự P.02 Q.10 TP.hcm
    Bài viết
    37

    Trích dẫn Nguyên bản được gửi bởi lavender Xem bài viết
    bạn nào có code hoặc phương pháp cũng được bài nhập vào số hoặc chuỗi kiểm tra xem có đối xứng hay không bảo mình với.thanks các bạn nhiều nha.
    bài giải ne`nhung toi chi lam số a
    Code:
    #include<stdio.h>
    void nhap(int &n)
    {
    	do
    	{
    		printf("\n moi nhap so tu nhien N =");
    		scanf("%d",&n);
    		if(n<=0)
    			printf("\n nhap sai moi nhap lai");
    	}while(n<=0);
    }
    int demsochusocuaN(int n)
    {
    	int dem=1;
    	while(n!=0)
    	{
    		if(n>9)
    		{
    			n=n/10;
    			dem++;
    		}
    		else
    		{
    			n=0;
    			dem=dem;
    		}
    	}
    	return dem;
    }
    int chuc(int n)
    {
    	int u=1;
    	if(n<=9)
    	return 1;
    	else
    	{
    		for(int i=1;i<demsochusocuaN(n);i++)
    			u=u*10;
    	}
    	return u;
    }
    void chuyenmang(int n,int A[],int &u)
    {
    	int a;u=0;
    	while(n!=0)
    	{
    		if(n>=10)
    		{
    			a=n/chuc(n);
    			n=n-(a*chuc(n));
    			A[u]=a;
    		}
    		else
    		{
    			A[u]=n;
    			n=0;
    		}
    		u++;
    	}
    }
    void kiemdinh(int A[],int u)
    {
    	int B[9],k=0;
    	for(int i=0;i<u;i++)
    		B[i]=A[i];
    	i=0;int j=u-1;
    	while(1)
    	{
    		if(A[i]!=A[j])
    			k++;
    		if(i>=j)
    		{
    			break;
    		}
    		i++;
    		j--;
    	}
    	if(k==0)
    		printf("\ndoi'  xung");
    	else
    		printf("\nkhong doi'xung");
    }
    void main()
    {
    	int A[9],n,u;
    	nhap(n);
    	chuyenmang(n,A,u);
    	kiemdinh(A,u);
    	printf("\n");
    }
    Đã được chỉnh sửa lần cuối bởi Phamvanla19 : 28-04-2009 lúc 11:11 AM.

  4. #4
    Ngày gia nhập
    03 2009
    Nơi ở
    hà nội
    Bài viết
    26

    Ở đây nhập số hay chuỗi đều được thì cho nhập 1 số bằng chuỗi luôn được ko?
    Như thế chỉ khai báo 1 chuỗi thui rùi thích nhập số hay chuỗi cũng được.
    Ko bít thì phải học, phải hỏi _ Bít thì nên chia sẻ cho người khác cùng bít
    Chia sẻ là cách học tốt nhất ^_^[j0y_k3y]0_0

  5. #5
    Ngày gia nhập
    04 2009
    Bài viết
    8

    cảm ơn mọi người nhiều lắm.ngày xưa mình hoc Pascal có hàm chuyển số thành xâu rùi xử lý xâu như mảng.nhưng không biết trong xâu có không nhi?

  6. #6
    Ngày gia nhập
    11 2008
    Nơi ở
    Hà Nội
    Bài viết
    70

    Mặc định Bài tập C | Kiểm tra số hoặc chuỗi có đối xứng ko? help me!!!

    Đơn giản và dễ hiểu
    C Code:
    1. #include<conio.h>
    2. #include<stdio.h>
    3. #include<string.h>
    4. #include<stdlib.h>
    5. void main()
    6. {
    7.   char chuoi[125];
    8.   int i = 0, j;
    9.  
    10.   printf("\nNhap vao chuoi kiem tra : ");
    11.   gets(chuoi);
    12.   j = strlen(chuoi) - 1;
    13.  
    14.   while(chuoi[i++] == chuoi[j--])
    15.   ;
    16.   if (--i>=++j)
    17.    printf("Chuoi doi xung");
    18.   else
    19.    printf("Chuoi khong doi xung");
    20.   getch();
    21. }
    Dân thường sống đẹp đè bẹp dân chơi.
    Hi [you]

  7. #7
    Ngày gia nhập
    03 2009
    Nơi ở
    hà nội
    Bài viết
    26

    Mình ko hiểu vòng lặp while của bạn lắm. Bạn giải thích giùm mình nha.
    Bài này mình hay dùng vòng for hơn, và chì dùng biến i thui, ko dùng thêm j
    Code:
    for (int i=0;i<strlen(chuoi)/2;)
         if (chuoi[i]!=chuoi[strlen(chuoi)-i-1]) 
            {
                printf("ko la dx");break;
             }
         else i++;
       if (i==strlen(chuoi)/2) printf("la dx");
    hay làm theo hàm:

    Code:
    int kt(char chuoi[])
         {
             for (int i=0;i<strlen(chuoi)/2;)
                if (chuoi[i]!=chuoi[strlen(chuoi)-i-1]) return -1;
              return 0;
         }
    Ko bít thì phải học, phải hỏi _ Bít thì nên chia sẻ cho người khác cùng bít
    Chia sẻ là cách học tốt nhất ^_^[j0y_k3y]0_0

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

    Cái vòng while của zodjac1990 là như sau
    Nếu a[i]==a[j] thì tiếp tục xét.
    Còn không thì ra khỏi vòng, đồng thời giảm j,tăng i.
    và sau khi ra khỏi vòng (nếu chuổi đối xứng) thì j=-1,i=strlen
    Nên phải xét --i và ++j. Trường hợp bằng chỉ để phòng chuỗi có 1 kí tự.
    Thực ra bài này chỉ cần xét đến độ dài nửa chuổi là được. Như cách của h_trang cũng được.

  9. #9
    Ngày gia nhập
    03 2009
    Nơi ở
    hà nội
    Bài viết
    26

    Vậy là vòng lăp while đó chỉ làm nhiệm vụ kiểm tra a[i] và a[j] thui chứ ko thực hiện lệnh nào hết?
    Mình hiểu rùi cảm ơn bạn
    Ko bít thì phải học, phải hỏi _ Bít thì nên chia sẻ cho người khác cùng bít
    Chia sẻ là cách học tốt nhất ^_^[j0y_k3y]0_0

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

  1. Cách nhập xuất chuỗi (hoặc kí tự) trong C++ như thế nào?
    Gửi bởi Fredy 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: 07-12-2012, 02:42 PM
  2. Lập trình C làm thế nào dể xóa một phần tử trong 1 chuỗi hoặc 1 mảng
    Gửi bởi nhoccon.uit trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 5
    Bài viết cuối: 26-12-2010, 10:41 PM
  3. Phép cộng chuỗi trong sql hoạt động thế nào ?
    Gửi bởi GaPro trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 29-11-2010, 11:04 PM
  4. Hàm trả về một chuỗi hoặc mảng ?
    Gửi bởi gadapchetvoi trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 20
    Bài viết cuối: 13-12-2008, 09:17 PM

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