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

Đề tài: [Solved]Xin giúp em về lỗi của bài toán xuất - sinh

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

    Thumbs down [Solved]Xin giúp em về lỗi của bài toán xuất - sinh

    Code:
     /* CHUONG TRINH LIET KE TAP CAC TAP CON m PHAN TU 
    CUA TAP n PHAN TU 
    (theo thứ tự từ nhỏ đến lớn và chữ số sau bé hơn chữ số trước trước)
       vd: cho 5 phần tử  các tập con chập 3 của 5  : ( n = 5 , m = 3 )    
             xuất ra :
    123 , 124 , 125 , 134 ,135 ,145 ,234 ,235 
        */
    
        #include <conio.h>
        #include <stdio.h>
    
        int n,m,Stop,c[100],count=0;
    
        void Intit(void) // HÀM NHẬP
        {
           int i;
           printf("Nhap vao so phan tu : ");
           scanf ("%d",&n);
           printf("Nhap vao so to hop chap cua phan tu : ");
           scanf ("%d",&m);
           for( i = 1 ; i <= m ; i ++ )
    
              c[i] = i ;
    
        }
        void xuat(void) // HÀM XUẤT
        {
    
           int i;count ++ ;
           printf("\nphan tu thu : %d\n",count);
    
           for( i = 1 ; i <= m ; i ++ )
    
              printf("%3d",c[i]);
    
        }
        void sinhdske(void) 
        {
           int i , j ;                     // i LÀ PHẦN TỬ CHƯA ĐẠT MAX , j LÀ PHẦN TỬ SAU i
           i = m ;                             // CHO HÀM LẬP CHẠY NGƯỢC TỪ PHẢI QUA TRÁI
           while(i > 0 && c[i] == n-m+i )      // NẾU PHẦN TỬ THỨ i ĐẠT MAX RỒI
              i--;                             // THÌ CHO QUA
           if( i > 0 )                        //NẾU KHÔNG ĐẠT MAX 
           {
              c[i] = c[i]++;
              for( j = i+1 ; j <= m ; j ++ )
                 c[j] = c[i]++;                  //SAU i 1 VỊ TRÍ THÌ TĂNG 1 SO VỚI c[i] 
                                                //     ( 2 VỊ TRÍ THÌ TĂNG 2 ....)
           }
           else
              Stop = 1;                         // KHI ĐÃ XÉT TỚI PHẦN TỬ CUỐI CÙNG BÊN TRÁI
        }
        void ketqua(void)
        {
    
           Stop = 0 ;
           while(!Stop)
           {
              xuat( );sinhdske( );
           }
        }
        void main(void)
        {
           clrscr( );
    
               Intit( );
           ketqua( );
           
           getch( );
    
        }
    Nó không báo lỗi mà chỉ chạy hoài , chạy hoài không ngừng nghỉ

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

    void ketqua(void)
    {

    Stop = 0 ; (1)
    while(!Stop) (2)
    {
    xuat( );sinhdske( );
    }
    }

    khi bạn cho stop=0; => !stop khác 0
    =>while(!stop) luôn đúng.=> vòng lặp sẽ thực hiện không kết thúc.

  3. #3
    Ngày gia nhập
    11 2007
    Bài viết
    153

    Khuyến cáo:
    C Code:
    1. for( i = 1 ; i <= m ; i ++ )
    2.  
    3.           c[i] = i ;
    cái này nên để trong cặp {} sẽ dễ đọc hơn.Bạn chưa phải viết thành theo lớp và phân chia module theo file nên viết vậy không sao.Nếu viết vài ngàn dòng mà đọc vô cái này loạn mất.
    Khi so sánh giá trị của m thì bạn tạo mảng tĩnh, như vậy với bài tập nhỏ không sao nhưng khi làm với bài tập lớn.Giải pháp đưa ra là chưa hợp lý.Giả dụ m=101 thì sao ? Vì vậy mình đề nghị bạn nên đưa vào là cấp phát bộ nhớ động chứ không phải tĩnh.Bạn nên tự mình đặt câu hỏi về cái mình viết.Làm hoàn thiện cái nhỏ thì mới có thể hoàn thiện được cái lớn.
    Chúc bạn thành công.
    ttecak ?

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

  1. [Solved]Cho mình hỏi về cách xuất mảng trong c
    Gửi bởi oneloveblue trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 01-12-2008, 03:28 PM
  2. [ Solved ]Cho hỏi về nhập xuất trong đồ họa ?
    Gửi bởi Kakakatt trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 18
    Bài viết cuối: 25-11-2008, 11:43 AM
  3. [ Solved ]Nhập xuất file sử dụng fstream
    Gửi bởi Template trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 13-11-2008, 11:26 AM
  4. [ Solved ]Lãi xuất tiết kiệm
    Gửi bởi the_eye trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 26-09-2008, 08:13 AM
  5. [ Solved ]Xuất nhập tập tin!!
    Gửi bởi yentin3 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 12-04-2008, 09:49 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