#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void nhapmang(int A[], int n)
{
for(int i=0; i<n; i++)
{
printf("A[%d] =", i);
scanf("%d",&A[i]);
}
}
void xuatmang(int A[], int n)
{
for(int i=0; i<n; i++)
printf("%d", A[i]);
}
void swap(int &a, int &b)
{
int t=a;
a=b;
b=t;
}
void interchange_sort(int A[], int n)
{
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
if(A[j]<A[i])
swap(A[i], A[j]);
}
}
int main()
{
int A[100];
int n;
printf("n =");
scanf("%d", &n);
nhapmang(A,n);
printf("mang truoc khi nhap:\t");
xuatmang(A,n);
printf("\nmang sau khi nhap:\t");
interchange_sort(A,n);
xuatmang(A,n);
_getch();
return 0;
}
Tại sao mình làm sắp xếp dãy số tăng dần mà kết quả ra là dãy giảm dần?
Thuật toán có vấn đề rồi: j chạy từ i+1 chứ
thuật toán sắp xếp sai
for (int I=1; I,n; I++){
for (j=i+1; j<=n; j++){
if (a[i] < a[j]) Swap(a[i],a[j]);
}
}
à, mình hiểu rồi, thanks các bạn nhiều nhé 
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?