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

Đề tài: bài toàn liệt kê

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

    Mặc định bài toàn liệt kê

    Có anh hai chị cả nào pro ko vào đây giúp với
    Tui có 1 đề bài như sau:
    viết chương trình nhập một xâu chữ gồm n chữ cái hoa(A..Z)-
    trong đó có một số chữ cái lặp.
    Liet ke tat cả cách sắp xep n chu~ cai nay.Co dem tong so cach sap xep

    nghĩ mãi nhức cả đầu mà chưa ra
    nhờ mọi người giúp đở
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<string.h>
    #include<ctype.h>
    char S[50],N[50];
    int A[50],n,dodai;
    unsigned long dem=0;
    void xoa(int i);
    void xuly();
    void Try(int i);
    /******************************************************/
    void xoa(int i)
    {
    	 int j;
    	 for(j=i;j<=n-2;j++)
    	 S[j]=S[j+1];
    	 n--;
    
    }
    /******************************************************/
    void xuly()
    {
    	  int j,k;
    	  for(j=0;j<n-1;j++)
    		  for(k=j+1;k<n;k++)
    			  if(S[j]==S[k])
    				 {
    				  A[j]++;
    				  xoa(k);
    				 }
    }
    /******************************************************/
    void Try(int i)
    {
    	 int j;
    	 for(j=0;j<n;j++)
    		if(A[j]>0)
    		  {
    			  N[i]=S[j];
    			  (A[j])--;
    			  if(i==dodai-1)
    				 {
    				  dem++;
    				  printf("\n%-10lu    %s",dem,N);
    				 }
    			  else Try(i+1);
    			  (A[j])++;
    		  }
    }
    /*****************************************************/
    void main()
    {
    clrscr();
    	  int j,x;
    	  printf("\n\n  CHUONG TRINH IN TAT CA CAC CACH SAP XEP CUA MOT XAU");
    	  printf("\n\n Nhap vao mot xau:  ");
    /*tui muốn buộc người ta nhập vào phải là chử hoa thì mới cho nhập*/
    	  do
    	  {
    	  x=getche();
    	  }
    	  while(isupper(x));
    	  gets(S);
    	  n=dodai=strlen(S);
    	  for(j=0;j<n;j++) A[j]=1;
    	  xuly();
    	  Try(0);
    getch();
    }
    cái code trên nó cứ báo lỗi hoài nhờ cả nhà chửa dùm
    Thank nhiều
    Đã được chỉnh sửa lần cuối bởi ruoi trau : 07-01-2009 lúc 11:27 PM.

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

    Thay vào thử xem, nhớ khai báo thêm cho biến o
    C Code:
    1.       do
    2.       {
    3.         gets(S);
    4.         for(o=0;o<strlen(S);++o)if(!isupper(S[o]))break;
    5.         if(o==strlen(S))break;
    6.         else printf("Nhap chu hoa gium ! >:(\n");
    7.       }
    8.       while(1);
    code ra gió bão

  3. #3
    Ngày gia nhập
    02 2008
    Bài viết
    15

    số liệt kê bằng n! :(a*b*c*d....*z)
    trong đó a = số lần xuất hiện của A giai thừa (vd A xuất hiện 2 lần thì a=2!)
    tương tự..b c d ....z

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

    thank you very much
    cám ơn bạn nhiều nha
    đúng ý mình quá

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

    thank......................

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