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

Đề tài: chữ lỗi bài toán đếm này cái

  1. #1
    Ngày gia nhập
    11 2008
    Nơi ở
    Pháo đài số
    Bài viết
    41

    Mặc định chữ lỗi bài toán đếm này cái

    em học Toán rời rạc....mà viết bài toán đếm sô xâu nhị phân kô chứa 2 bít 0 liên tiếp...nhưng khổ nổi là phải kiểm ra điều kiền ở hàm in....mấy anh sữa dum em để cho hàm kiểm vào hàm thu đc kô.....
    PHP Code:
    #include<stdio.h>
    #include<conio.h>
    int a[6],s[6],d=0;
    void thu(int i),in();
    void main()
    {
      
    clrscr();
      
    int i;
      
    thu(1);

      
    getch();
    }
    void thu(int i)
    {
      
    int j;
      for(
    j=0;j<=1;j++){
          
    s[i]=j;
          if(
    i==3)
        
    //    for(k=1;k<=2;k++)
          //       if(s[k]==0&&s[k+1]==0) kt=0;

        
    in();

           else 
    thu(i+1);
      }

    }
    void in()
    {
     
    int i,kt=1;


     for(
    i=1;i<=2;i++)
        if(
    s[i]==0&&s[i+1]==0)kt=0;

     if(
    kt){
         
    d++;printf("\n%2d: ",d);
         for(
    i=1;i<=3;i++)    printf("%2d",s[i]);
     }


  2. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    bạn có thể nói rõ ràng hơn đề bài ko ? ko hiểu bạn đang làm gì ?



    int a[6],s[6],d=0;


    ....
    khi khai báo mảng , biến toàn cục thì tự động nó = 0 rồi việc gì phải gán ???
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  3. #3
    Ngày gia nhập
    11 2008
    Nơi ở
    Neverland
    Bài viết
    48

    Bạn có thể sửa chương trình của bạn để in ra xâu nhị phân có độ dài bất kì chứ không chỉ dừng lại ở xâu nhị phân có độ dài 3 . Mình thấy kiểm tra điều kiện ở hàm in() là hợp lí rồi bạn đưa phần kiểm tra điều kiện vào hàm thu làm gì chứ .
    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. int a[6],s[6],d=0,kt,k;
    4. void thu(int i),in();
    5. void main()
    6. {
    7.   clrscr();
    8.   int i;
    9.   thu(1);
    10.  
    11.   getch();
    12. }
    13. void thu(int i)
    14. {
    15.   int j;
    16.   for(j=0;j<=1;j++){
    17.       s[i]=j;
    18.       if(i==3) { //chỗ này có thể sửa một tí để in độ dài xâu bất kì
    19.           kt = 1;        
    20.           for(k=1;k<=2;k++)
    21.              if(s[k]==0&&s[k+1]==0) kt=0;
    22.           if (kt) in();
    23.       }
    24.        else thu(i+1);
    25.   }
    26. }
    27. void in()
    28. {
    29.  int i;
    30.  d++;printf("\n%2d: ",d);
    31.  for(i=1;i<=3;i++)    printf("%2d",s[i]);
    32. }
    OK cũng sửa theo ý bạn luôn này .
    I'm superman

  4. #4
    Ngày gia nhập
    11 2008
    Nơi ở
    Pháo đài số
    Bài viết
    41

    em khai báo dư mấy mãng phía trên...cái đó kô tính...ý em là có thể viết code kiểm tra xâu bít kô có 2 bít 0 kề nhau trong hàm thu() đó....viết ở hàm in() thì đúng mà chuyển đoạn code lên hàm thu() thì nó chạy sai bét...còn vấn đề in xâu nhi phân bất kỳ thì chi~ bõ phần kiểm tra ở ham in().....

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