30/09/2018, 18:55
Cần trợ giúp bài liệt kê hoán vị. Code bị lặp vô hạn và chỉ in 123
void xuly(int n){
int mang[n];
for (int i=1;i<=n;i++)
mang[i]=i;
do{
int i=n-1;
for (int z=1;z<=n;z++)
printf("%d ",mang[z]);
printf("
");
while(i>0 && mang[i]>mang[i+1]) i--;
if (i>0){
int k=n;
while(mang[k]<mang[i]) k--;
hoanvi(mang[k],mang[i]);
int a=i+1,b=n;
while(a<b){
hoanvi(mang[a],mang[b]);
a++;
b--;
}
}
}while(i!=0);
}
Mình làm bài liệt kê hoán vị
nhưng code của mình khi cho chạy thì xuất kết quả lặp vô hạn nhưng chỉ in ra 123
Bài liên quan
Hàm hoán vị của bạn bị sai.
2 giá trị truyền vào ko đc đổi giá trị.
Dùng con trỏ là xong ngay xD nhé
em chạy debug thì nó swap được nhưng không truyền vào hàm xuly được
Bạn dùng con trỏ là đc
Vì hàm swap trên nó chỉ swap trong hàm thôi, khi ra khỏi làm là 2 giá trị truyền vào nguyên xi
để em tìm hiểu về con trỏ trước giờ chưa dùng con trỏ bao giờ hết
Bạn tìm hiểu thêm về cách truyền tham số vào hàm, vì nó có hai kiểu:
ps: Xin lỗi vì mình không biết diễn đạt như nào cho dễ hiểu, bạn tham khảo theo link trên
cảm ơn anh