30/09/2018, 19:59

Liệt kê các tập hoán vị của một tạp cho trước bằng C++

Với a[4]={1,2,3,4} cho trước

for (i = 0; i < 23; i++) {
    for (j = 2; j >= 0; j++) {
        if (a[j] < a[j + 1]) {
            temp = a[3];
            for (k = 3; k > j; k--) {
                a[k] = a[k - 1];
            }
            a[j] = temp;
            break;
        }
    }

Em làm vậy đã đúng chưa
Đề là liệt kê các tập hoán vị của a[4]

Ngô Doãn Tuấn viết 22:06 ngày 30/09/2018

for(i=0;i<23;i++) { for(j=2;j>=0;j++) { if(a[j] { temp=a[3]; for(k=3;k>j;k–) { a[k]=a[k-1]; } a[j]=temp; break; } }

Bạn ơi, Bạn nên cho code vào Markdown khi up code thế này nhé

Mirana viết 21:59 ngày 30/09/2018

nhưng lúc chạy chương trình nó chỉ đổi có 1 lần hoán vị còn các lần tiếp theo nó lặp lại tập 2 ko đổi tiếp liệu chương trình có sai ko anh

Ngô Doãn Tuấn viết 22:02 ngày 30/09/2018

Bạn ơi, bạn sửa lại code cho dễ nhìn đã nhé ![quote=“Spectre, post:1, topic:22378”]
for(i=0;i<23;i++)
[/quote]

mình thấy bạn khai báo a[4] sao vòng for lại lặp nhiều thế

temp=a[3];

Biến temp bạn chưa khai báo cho nó này !

Mirana viết 22:11 ngày 30/09/2018

mình viết mỗi phần xử lí chính thôi còn chương trình chạy rồi nhưng chỉ đổi được có 1 lần sau đó viết lại tập đó lại 2 mấy lần ko đổi tiếp

Bài liên quan
0