sắp xếp mảng a cho trước sao cho các phần tử lớn nhất ở đầu mảng, các phần tử bé nhất ở cuối mảng, các phần tử còn lại sắp xếp tăng dần

sắp xếp mảng a cho trước sao cho các phần tử lớn nhất ở đầu mảng, các phần tử bé nhất ở cuối mảng, các phần tử còn lại sắp xếp tăng dần

#include<stdio.h>
#include<conio.h>
int a[100];
void main()
{
int demmin = 0, n, i, k, max, min, demmax = 0, j;
printf("nhap so phan tu cua mang: ");
scanf_s("%d", &n);
for (i = 0; i < n; i++)
{
printf("a[%d]=", i + 1);
scanf_s("%d", &a[i]);
}
printf("mang da nhap:\n");
for (i = 0; i < n; i++) printf(" %d ", a[i]);
max = a[0]; min = a[0];
for (i = 0; i < n; i++) if (max < a[i]) max = a[i];
for (i = 0; i < n; i++) if (max == a[i]) demmax++;
for (i = 0; i < n; i++) if (min > a[i]) min = a[i];
for (i = 0; i < n; i++) if (min == a[i]) demmin++;
for (i = 0; i < demmax; i++)
{
for (j = demmax; j < n; j++)
{
if (a[j] == max)
{
k = a[i];
a[i] = a[j];
a[j] = k;
}
}
}
for (i = n - 1 - demmin; i < n; i++)
{
for (j = demmax; j < n - demmin; j++)
{
if (a[j] == min)
{
k = a[i];
a[i] = a[j];
a[j] = k;
}
}
}
for (i = demmax; i < n - demmin-1;i++)
for (j = i + 1; j < n - demmin;j++)
if (a[i]>a[j])
{
k = a[i];
a[i] = a[j];
a[j] = k;
}

printf("\nmang sau khi sap xep:\n");
for (i = 0; i < n; i++) printf(" %d ", a[i]);
_getch();
}

Không có nhận xét nào:

Đăng nhận xét