ปัญหา: เรียงลำดับอาร์เรย์ตัวเลขจากมากไปน้อย
ตรรกะเดียวกับ Ascending แต่เปลี่ยนเงื่อนไขเป็น if (num[i] < num[j]) สลับที่ถ้าหน้าน้อยกว่าหลัง
โค้ด C เต็ม
#include <stdio.h>
void main() {
int num[20];
int i, j, a, n;
printf("enter number of elements in an array\n");
scanf("%d", &n);
printf("Enter the elements\n");
for (i = 0; i < n; ++i)
scanf("%d", &num[i]);
for (i = 0; i < n; ++i) {
for (j = i + 1; j < n; ++j) {
if (num[i] < num[j]) {
a = num[i];
num[i] = num[j];
num[j] = a;
}
}
}
printf("The numbers in descending order is:\n");
for (i = 0; i < n; ++i) {
printf("%d\n", num[i]);
}
}
ตัวอย่าง Output
enter number of elements in an array 4
Enter the elements
11 34 67 89
The numbers in descending order is:
89
67
34
11